Class: Mutant::AST::Meta::Send Private
- Inherits:
-
Object
- Object
- Mutant::AST::Meta::Send
- Includes:
- NamedChildren, NodePredicates
- Defined in:
- lib/mutant/ast/meta/send.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Metadata for send nodes
Constant Summary collapse
- INDEX_ASSIGNMENT_SELECTOR =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
:[]=
- ATTRIBUTE_ASSIGNMENT_SELECTOR_SUFFIX =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
'='.freeze
Instance Method Summary collapse
-
#assignment? ⇒ Boolean
private
Test if AST node is a valid assignment target.
-
#attribute_assignment? ⇒ Boolean
private
Test if AST node is an attribute assignment?.
-
#binary_method_operator? ⇒ Boolean
private
Test for binary operator implemented as method.
-
#index_assignment? ⇒ Boolean
private
Test if AST node is an index assign.
-
#proc? ⇒ Boolean
private
Test if node is defining a proc.
-
#receiver_possible_top_level_const? ⇒ Boolean
private
Test if receiver is possibly a top level constant.
Methods included from NamedChildren
Instance Method Details
#assignment? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Test if AST node is a valid assignment target
36 37 38 |
# File 'lib/mutant/ast/meta/send.rb', line 36 def assignment? index_assignment? || attribute_assignment? end |
#attribute_assignment? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Test if AST node is an attribute assignment?
43 44 45 46 |
# File 'lib/mutant/ast/meta/send.rb', line 43 def attribute_assignment? !Types::METHOD_OPERATORS.include?(selector) && selector.to_s.end_with?(ATTRIBUTE_ASSIGNMENT_SELECTOR_SUFFIX) end |
#binary_method_operator? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Test for binary operator implemented as method
58 59 60 |
# File 'lib/mutant/ast/meta/send.rb', line 58 def binary_method_operator? Types::BINARY_METHOD_OPERATORS.include?(selector) end |
#index_assignment? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Test if AST node is an index assign
51 52 53 |
# File 'lib/mutant/ast/meta/send.rb', line 51 def index_assignment? selector.equal?(INDEX_ASSIGNMENT_SELECTOR) end |
#proc? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Test if node is defining a proc
29 30 31 |
# File 'lib/mutant/ast/meta/send.rb', line 29 def proc? naked_proc? || proc_new? end |
#receiver_possible_top_level_const? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Test if receiver is possibly a top level constant
65 66 67 68 69 |
# File 'lib/mutant/ast/meta/send.rb', line 65 def receiver_possible_top_level_const? return false unless receiver && n_const?(receiver) Const.new(receiver).possible_top_level? end |