1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00

Rename singleton_class{,_of} (fix #940)

This commit is contained in:
Ryan Fitzgerald 2013-06-08 17:16:28 -07:00
parent 0afc8b936e
commit a0f678b5b2

View file

@ -158,7 +158,7 @@ class Pry
if Class === obj if Class === obj
singleton_class_resolution_order(obj) + instance_resolution_order(Class) singleton_class_resolution_order(obj) + instance_resolution_order(Class)
else else
klass = singleton_class(obj) rescue obj.class klass = singleton_class_of(obj) rescue obj.class
instance_resolution_order(klass) instance_resolution_order(klass)
end end
end end
@ -206,14 +206,17 @@ class Pry
# If a module is included at multiple points in the ancestry, only # If a module is included at multiple points in the ancestry, only
# the lowest copy will be returned. # the lowest copy will be returned.
def singleton_class_resolution_order(klass) def singleton_class_resolution_order(klass)
resolution_order = Pry::Method.safe_send(klass, :ancestors).map do |anc| ancestors = Pry::Method.safe_send(klass, :ancestors)
[singleton_class(anc)] + singleton_class(anc).included_modules if anc.is_a?(Class) resolution_order = ancestors.map do |anc|
if anc.is_a?(Class)
[singleton_class_of(anc)] + singleton_class_of(anc).included_modules
end
end.compact.flatten(1) end.compact.flatten(1)
resolution_order.reverse.uniq.reverse - Class.included_modules resolution_order.reverse.uniq.reverse - Class.included_modules
end end
def singleton_class(obj); class << obj; self; end end def singleton_class_of(obj); class << obj; self; end end
end end
# A new instance of `Pry::Method` wrapping the given `::Method`, `UnboundMethod`, or `Proc`. # A new instance of `Pry::Method` wrapping the given `::Method`, `UnboundMethod`, or `Proc`.