class Bogus::BaseClassIdentifier

Public Class Methods

base_class?(copied_class, klass) click to toggle source
# File lib/bogus/fakes/base_class_identifier.rb, line 6
def self.base_class?(copied_class, klass)
  new(copied_class, klass).base_class?
end

Public Instance Methods

base_class?() click to toggle source
# File lib/bogus/fakes/base_class_identifier.rb, line 10
def base_class?
  same? || included_module? || subclass?
end

Private Instance Methods

included_module?() click to toggle source
# File lib/bogus/fakes/base_class_identifier.rb, line 20
def included_module?
  copied_class.included_modules.include?(klass)
end
same?() click to toggle source
# File lib/bogus/fakes/base_class_identifier.rb, line 16
def same?
  klass == copied_class
end
subclass?() click to toggle source
# File lib/bogus/fakes/base_class_identifier.rb, line 24
def subclass?
  superclasses.include?(klass)
end
superclasses() click to toggle source
# File lib/bogus/fakes/base_class_identifier.rb, line 28
def superclasses
  return [] unless copied_class.is_a?(Class)
  klass = copied_class
  superclasses = []
  while klass
    superclasses << klass
    klass = klass.superclass
  end
  superclasses
end