class Yoda::Store::Objects::NamespaceObject
@abstract
Attributes
ancestors[RW]
@return [Enumerable<NamespaceObject>]
constant_addresses[R]
@type Array<String>
instance_method_addresses[R]
@return [Array<String>]
methods[RW]
@return [Enumerable<MethodObject>]
mixin_addresses[R]
@type Array<String>
Public Class Methods
attr_names()
click to toggle source
@return [Array<Symbol>]
Calls superclass method
Yoda::Store::Objects::Base::attr_names
# File lib/yoda/store/objects/namespace_object.rb, line 22 def self.attr_names super + %i(instance_method_addresses mixin_addresses constant_addresses) end
new(instance_method_addresses: [], mixin_addresses: [], constant_addresses: [], **kwargs)
click to toggle source
@param path [String] @param document [Document, nil] @param tag_list [TagList, nil] @param instance_method_paths [Array<String>] @param constant_addresses
[Array<String>] @param mixin_addresses
[Array<String>]
Calls superclass method
Yoda::Store::Objects::Base::new
# File lib/yoda/store/objects/namespace_object.rb, line 32 def initialize(instance_method_addresses: [], mixin_addresses: [], constant_addresses: [], **kwargs) super(kwargs) @instance_method_addresses = instance_method_addresses @mixin_addresses = mixin_addresses @constant_addresses = constant_addresses @ancestors ||= [] end
Public Instance Methods
name()
click to toggle source
@return [String]
# File lib/yoda/store/objects/namespace_object.rb, line 41 def name @name ||= path.match(MODULE_TAIL_PATTERN) { |md| md[1] || md[2] } end
to_h()
click to toggle source
Calls superclass method
Yoda::Store::Objects::Base#to_h
# File lib/yoda/store/objects/namespace_object.rb, line 45 def to_h super.merge( instance_method_addresses: instance_method_addresses, mixin_addresses: mixin_addresses, constant_addresses: constant_addresses, ) end
Private Instance Methods
merge_attributes(another)
click to toggle source
@param another [self] @return [Hash]
Calls superclass method
Yoda::Store::Objects::Base#merge_attributes
# File lib/yoda/store/objects/namespace_object.rb, line 57 def merge_attributes(another) super.merge( instance_method_addresses: (instance_method_addresses + another.instance_method_addresses).uniq, mixin_addresses: (mixin_addresses + another.mixin_addresses).uniq, constant_addresses: (constant_addresses + another.constant_addresses).uniq, ) end