class SystemBrowser::Services::BehaviourService

Constants

CACHED_BEHAVIOURS

Public Class Methods

all_from(gem) click to toggle source
# File lib/system_browser/services/behaviour_service.rb, line 6
def self.all_from(gem)
  if CACHED_BEHAVIOURS.has_key?(gem)
    CACHED_BEHAVIOURS[gem]
  else
    CACHED_BEHAVIOURS[gem] = SystemNavigation.new.all_classes_and_modules_in_gem_named(gem)
  end
end

Public Instance Methods

autoget() click to toggle source
# File lib/system_browser/services/behaviour_service.rb, line 29
def autoget
  behaviour = SystemBrowser::Behaviour.from_str(@data)

  if CoreClasses.as_set.find { |c| c == behaviour }
    {gem: GemService::CORE_LABEL}
  elsif self.stdlib_behaviours.find { |c| c == behaviour }
    {gem: GemService::STDLIB_LABEL}
  else
    behaviours = @sn.all_classes_and_modules_in_gem_named(@other)
    gem = if behaviours.include?(behaviour)
            @other
          else
            self.all_gems.keys.find do |g|
              behaviours = @sn.all_classes_and_modules_in_gem_named(g)
              behaviours.include?(behaviour)
            end
          end

    {gem: gem}
  end
end
get() click to toggle source
# File lib/system_browser/services/behaviour_service.rb, line 14
def get
   self.behaviours.map do |behaviour|
    is_module = behaviour.instance_of?(Module)

    superclass = unless is_module
                   behaviour.superclass
                 end

    {name: (behaviour.name ? behaviour.name : behaviour.inspect),
     isModule: is_module,
     isException: behaviour.ancestors.include?(Exception),
     superclass: superclass}
  end
end

Protected Instance Methods

behaviours() click to toggle source
# File lib/system_browser/services/behaviour_service.rb, line 56
def behaviours
  case @data
  when GemService::CORE_LABEL
    CoreClasses.as_set
  when GemService::STDLIB_LABEL
    self.stdlib_behaviours
  else
    self.class.all_from(@data)
  end
end