Class: Yoda::Store::Objects::NamespaceObject Abstract
- Defined in:
- lib/yoda/store/objects/namespace_object.rb
Overview
This class is abstract.
Direct Known Subclasses
Defined Under Namespace
Classes: Connected
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
- #namespace? ⇒ Boolean
- #to_h ⇒ Object
Methods inherited from Base
#==, #address, #eql?, #hash, #kind, #merge, #meta_class_address, #parent_address, #with_connection
Methods included from Patchable
Methods included from Serializable
#==, #derive, #eql?, #hash, included, #to_json
Methods included from Addressable
Constructor Details
#initialize(instance_method_addresses: [], mixin_addresses: [], constant_addresses: [], **kwargs) ⇒ NamespaceObject
Returns a new instance of NamespaceObject.
62 63 64 65 66 67 68 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 62 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>
46 47 48 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 46 def ancestors @ancestors end |
#constant_addresses ⇒ Object (readonly)
Returns the value of attribute constant_addresses.
43 44 45 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 43 def constant_addresses @constant_addresses end |
#instance_method_addresses ⇒ Array<String> (readonly)
37 38 39 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 37 def instance_method_addresses @instance_method_addresses end |
#methods ⇒ Enumerable<MethodObject>
49 50 51 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 49 def methods @methods end |
#mixin_addresses ⇒ Object (readonly)
Returns the value of attribute mixin_addresses.
40 41 42 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 40 def mixin_addresses @mixin_addresses end |
Class Method Details
.attr_names ⇒ Array<Symbol>
52 53 54 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 52 def self.attr_names super + %i(instance_method_addresses mixin_addresses constant_addresses) end |
Instance Method Details
#name ⇒ String
Note:
Override of Base#name
72 73 74 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 72 def name @name ||= path.match(MODULE_TAIL_PATTERN) { |md| md[1] || md[2] } end |
#namespace? ⇒ Boolean
Note:
Override of Base#namespace?
86 87 88 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 86 def namespace? true end |
#to_h ⇒ Object
Note:
Override of Base#to_h
77 78 79 80 81 82 83 |
# File 'lib/yoda/store/objects/namespace_object.rb', line 77 def to_h super.merge( instance_method_addresses: instance_method_addresses, mixin_addresses: mixin_addresses, constant_addresses: constant_addresses, ) end |