Class: Fastererer::Argument
- Inherits:
-
Object
- Object
- Fastererer::Argument
- Defined in:
- lib/fastererer/method_call.rb
Constant Summary collapse
- TYPE_BY_NODE_CLASS =
{ Prism::KeywordHashNode => :hash, Prism::HashNode => :hash, Prism::StringNode => :string, Prism::IntegerNode => :integer, Prism::SymbolNode => :symbol, Prism::FloatNode => :float, Prism::RegularExpressionNode => :regexp, Prism::NilNode => :nil, Prism::TrueNode => :boolean, Prism::FalseNode => :boolean, Prism::LocalVariableReadNode => :variable, Prism::CallNode => :method_call }.freeze
Instance Attribute Summary collapse
-
#element ⇒ Object
readonly
Returns the value of attribute element.
Instance Method Summary collapse
-
#initialize(node) ⇒ Argument
constructor
A new instance of Argument.
- #type ⇒ Object
- #value ⇒ Object
Constructor Details
#initialize(node) ⇒ Argument
Returns a new instance of Argument.
148 149 150 |
# File 'lib/fastererer/method_call.rb', line 148 def initialize(node) @element = node end |
Instance Attribute Details
#element ⇒ Object (readonly)
Returns the value of attribute element.
146 147 148 |
# File 'lib/fastererer/method_call.rb', line 146 def element @element end |
Instance Method Details
#type ⇒ Object
167 168 169 |
# File 'lib/fastererer/method_call.rb', line 167 def type @type ||= TYPE_BY_NODE_CLASS[element.class] || :unknown end |
#value ⇒ Object
171 172 173 174 175 176 177 178 179 |
# File 'lib/fastererer/method_call.rb', line 171 def value return @value if defined?(@value) @value = case element when Prism::StringNode then element.unescaped when Prism::IntegerNode, Prism::FloatNode then element.value when Prism::SymbolNode then element.unescaped.to_sym end end |