Class: Lowkey::ModuleProxy
- Includes:
- Query
- Defined in:
- lib/proxies/module_proxy.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#class_methods ⇒ Object
Returns the value of attribute class_methods.
-
#keyed_methods ⇒ Object
Returns the value of attribute keyed_methods.
-
#method_calls ⇒ Object
Returns the value of attribute method_calls.
-
#namespace ⇒ Object
readonly
Returns the value of attribute namespace.
-
#private_start_line ⇒ Object
Returns the value of attribute private_start_line.
Attributes inherited from Proxy
Class Method Summary collapse
Instance Method Summary collapse
- #[](key) ⇒ Object
-
#initialize(node:, name:, namespace:, source:) ⇒ ModuleProxy
constructor
A new instance of ModuleProxy.
Methods included from Query
Constructor Details
#initialize(node:, name:, namespace:, source:) ⇒ ModuleProxy
Returns a new instance of ModuleProxy.
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/proxies/module_proxy.rb', line 13 def initialize(node:, name:, namespace:, source:) super(name:, source:) @node = node @namespace = namespace @private_start_line = nil @keyed_methods = {} @class_methods = {} @method_calls = [] end |
Instance Attribute Details
#class_methods ⇒ Object
Returns the value of attribute class_methods.
11 12 13 |
# File 'lib/proxies/module_proxy.rb', line 11 def class_methods @class_methods end |
#keyed_methods ⇒ Object
Returns the value of attribute keyed_methods.
11 12 13 |
# File 'lib/proxies/module_proxy.rb', line 11 def keyed_methods @keyed_methods end |
#method_calls ⇒ Object
Returns the value of attribute method_calls.
11 12 13 |
# File 'lib/proxies/module_proxy.rb', line 11 def method_calls @method_calls end |
#namespace ⇒ Object (readonly)
Returns the value of attribute namespace.
10 11 12 |
# File 'lib/proxies/module_proxy.rb', line 10 def namespace @namespace end |
#private_start_line ⇒ Object
Returns the value of attribute private_start_line.
11 12 13 |
# File 'lib/proxies/module_proxy.rb', line 11 def private_start_line @private_start_line end |
Class Method Details
.class_method?(method_node:, parent_map:) ⇒ Boolean
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/proxies/module_proxy.rb', line 32 def class_method?(method_node:, parent_map:) return true if method_node.is_a?(::Prism::DefNode) && method_node.receiver.instance_of?(Prism::SelfNode) # self.method_name return true if method_node.is_a?(::Prism::SingletonClassNode) # class << self if (parent_node = parent_map[method_node]) return class_method?(method_node: parent_node, parent_map:) end false end |
Instance Method Details
#[](key) ⇒ Object
27 28 29 |
# File 'lib/proxies/module_proxy.rb', line 27 def [](key) key.start_with?('.') ? query(node: @node, namespace: nil, name: key.delete_prefix('.')) : @keyed_methods[key] end |