class Yoda::Store::Query::Associators::AssociateMethods
Attributes
registry[R]
@return [Registry]
Public Class Methods
new(registry)
click to toggle source
@param registry [Registry]
# File lib/yoda/store/query/associators/associate_methods.rb, line 10 def initialize(registry) @registry = registry end
Public Instance Methods
associate(obj)
click to toggle source
@param obj [Object::Base] @return [Enumerator<Objects::MethodObject>]
# File lib/yoda/store/query/associators/associate_methods.rb, line 16 def associate(obj) if obj.is_a?(Objects::NamespaceObject) Enumerator.new do |yielder| name_set = Set.new AssociateAncestors.new(registry).associate(obj).each do |ancestor| ancestor.instance_method_addresses.each do |method_address| method_name = Objects::MethodObject.name_of_path(method_address) if !name_set.member?(method_name) name_set.add(method_name) if el = registry.find(method_address) yielder << el end end end end end else [] end end