Class: Rubyzen::Declarations::MacroDeclaration
- Inherits:
-
Object
- Object
- Rubyzen::Declarations::MacroDeclaration
- Includes:
- Providers::ClassNameProvider, Providers::FilePathProvider, Providers::LineNumberProvider, Providers::SourceCodeProvider
- Defined in:
- lib/rubyzen/declarations/macro_declaration.rb
Overview
Represents a class-level macro call (e.g. validates_required, belongs_to).
Instance Attribute Summary collapse
- #node ⇒ RuboCop::AST::Node readonly
- #parent ⇒ ClassDeclaration readonly
Instance Method Summary collapse
-
#initialize(node, parent) ⇒ MacroDeclaration
constructor
A new instance of MacroDeclaration.
-
#keyword_args ⇒ Array<Symbol>
Returns keyword argument keys.
-
#name ⇒ String
Returns the macro method name.
-
#receiver ⇒ String?
Returns the constant receiver, if any.
-
#strings ⇒ Array<String>
Returns positional string arguments.
-
#symbols ⇒ Array<Symbol>
Returns positional symbol arguments.
Methods included from Providers::SourceCodeProvider
Methods included from Providers::LineNumberProvider
Methods included from Providers::ClassNameProvider
Methods included from Providers::FilePathProvider
Constructor Details
#initialize(node, parent) ⇒ MacroDeclaration
Returns a new instance of MacroDeclaration.
25 26 27 28 |
# File 'lib/rubyzen/declarations/macro_declaration.rb', line 25 def initialize(node, parent) @node = node @parent = parent end |
Instance Attribute Details
#node ⇒ RuboCop::AST::Node (readonly)
18 19 20 |
# File 'lib/rubyzen/declarations/macro_declaration.rb', line 18 def node @node end |
#parent ⇒ ClassDeclaration (readonly)
21 22 23 |
# File 'lib/rubyzen/declarations/macro_declaration.rb', line 21 def parent @parent end |
Instance Method Details
#keyword_args ⇒ Array<Symbol>
Returns keyword argument keys.
54 55 56 |
# File 'lib/rubyzen/declarations/macro_declaration.rb', line 54 def keyword_args extract_keyword_args(node) end |
#name ⇒ String
Returns the macro method name.
33 34 35 |
# File 'lib/rubyzen/declarations/macro_declaration.rb', line 33 def name node.method_name.to_s end |
#receiver ⇒ String?
Returns the constant receiver, if any.
61 62 63 |
# File 'lib/rubyzen/declarations/macro_declaration.rb', line 61 def receiver node.receiver&.type == :const ? node.receiver.const_name : nil end |
#strings ⇒ Array<String>
Returns positional string arguments.
47 48 49 |
# File 'lib/rubyzen/declarations/macro_declaration.rb', line 47 def strings node.arguments.select { |arg| arg.type == :str }.map(&:value) end |
#symbols ⇒ Array<Symbol>
Returns positional symbol arguments.
40 41 42 |
# File 'lib/rubyzen/declarations/macro_declaration.rb', line 40 def symbols node.arguments.select { |arg| arg.type == :sym }.map(&:value) end |