Method: Object.overridden_methods

Defined in:
lib/ubiquitously/extensions/core.rb

.overridden_methods(parent_class = Object, within_tree = true) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/ubiquitously/extensions/core.rb', line 4

def self.overridden_methods(parent_class = Object, within_tree = true)
  if within_tree
    defined_methods = ancestors[0..ancestors.index(parent_class) - 1].map { |object| object.instance_methods(false) }.flatten.uniq
    parent_methods = superclass.instance_methods
  else
    defined_methods = instance_methods(false)
    parent_methods = parent_class.instance_methods
  end
  defined_methods & parent_methods
end