Class: Yoda::Store::Objects::NamespaceObject Abstract
- Defined in:
- lib/yoda/store/objects/namespace_object.rb
Overview
This class is abstract.
Direct Known Subclasses
Instance Attribute Summary collapse
- #ancestors ⇒ Enumerable<NamespaceObject>
-
#constant_addresses ⇒ Object
readonly
Returns the value of attribute constant_addresses.
- #instance_method_addresses ⇒ Array<String> readonly
- #methods ⇒ Enumerable<MethodObject>
-
#mixin_addresses ⇒ Object
readonly
Returns the value of attribute mixin_addresses.
Attributes inherited from Base
#document, #path, #primary_source, #sources, #tag_list
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(instance_method_addresses: [], mixin_addresses: [], constant_addresses: [], **kwargs) ⇒ NamespaceObject
constructor
A new instance of NamespaceObject.
- #name ⇒ String
- #to_h ⇒ Object
Methods inherited from Base
#==, #address, #eql?, #hash, #kind, #merge
Methods included from Patchable
Methods included from Serializable
Methods included from Addressable
Constructor Details
#initialize(instance_method_addresses: [], mixin_addresses: [], constant_addresses: [], **kwargs) ⇒ NamespaceObject
Returns a new instance of NamespaceObject.
32 33 34 35 36 37 38 |
# 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 |
Instance Attribute Details
#ancestors ⇒ Enumerable<NamespaceObject>
16 17 18 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 16 def ancestors @ancestors end |
#constant_addresses ⇒ Object (readonly)
Returns the value of attribute constant_addresses.
13 14 15 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 13 def constant_addresses @constant_addresses end |
#instance_method_addresses ⇒ Array<String> (readonly)
7 8 9 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 7 def instance_method_addresses @instance_method_addresses end |
#methods ⇒ Enumerable<MethodObject>
19 20 21 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 19 def methods @methods end |
#mixin_addresses ⇒ Object (readonly)
Returns the value of attribute mixin_addresses.
10 11 12 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 10 def mixin_addresses @mixin_addresses end |
Class Method Details
.attr_names ⇒ Array<Symbol>
22 23 24 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 22 def self.attr_names super + %i(instance_method_addresses mixin_addresses constant_addresses) end |
Instance Method Details
#name ⇒ String
41 42 43 |
# 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 ⇒ Object
45 46 47 48 49 50 51 |
# 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 |