module Kernel

This is a Kernel extention

Public Instance Methods

geili_ancestors() click to toggle source

list ancestors displaying eigeinclass

# File lib/geilitool.rb, line 7
def geili_ancestors
  eigeinclass = class << self;self;end
  full_ancestors = [eigeinclass]
  modules = eigeinclass.included_modules
  x = eigeinclass
  while x.superclass do
    x = x.superclass
    full_ancestors << x
    deleted = []
    modules.each do |m|
      if x.include? m
        unless x.superclass and x.superclass.include? m
          full_ancestors << m
          deleted << m
        end
      end
    end
    deleted.each do |m|
      modules.delete m
    end
  end
  full_ancestors
end
geili_class() click to toggle source

find class displaying eigeinclass

# File lib/geilitool.rb, line 32
def geili_class
  eigeinclass = class << self;self;end
  class_stack = [eigeinclass]
  x = eigeinclass
  while x.superclass and x.to_s.include?('#') do
    x = x.superclass
    class_stack << x
  end
  class_stack
end
geili_defined?(name) click to toggle source

find the class or module where defined given method

# File lib/geilitool.rb, line 44
def geili_defined? name
  result = []
  geili_ancestors.each do |m|
    result << m if m.instance_methods(false).include? name.to_sym
  end
  result
end