Class: Mutant::AST::Meta::Send

Inherits:
Object
  • Object
show all
Includes:
NamedChildren
Defined in:
lib/mutant/ast/meta.rb

Overview

Generic metadata for send nodes

Constant Summary collapse

INDEX_ASSIGNMENT_SELECTOR =
:[]=
ATTRIBUTE_ASSIGNMENT_SELECTOR_SUFFIX =
'='.freeze

Instance Method Summary collapse

Methods included from NamedChildren

included

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

Returns:

  • (Boolean)


45
46
47
# File 'lib/mutant/ast/meta.rb', line 45

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?

Returns:

  • (Boolean)


55
56
57
# File 'lib/mutant/ast/meta.rb', line 55

def attribute_assignment?
  arguments.one? && attribute_assignment_selector?
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

Returns:

  • (Boolean)


75
76
77
# File 'lib/mutant/ast/meta.rb', line 75

def binary_method_operator?
  arguments.one? && 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

Returns:

  • (Boolean)


65
66
67
# File 'lib/mutant/ast/meta.rb', line 65

def index_assignment?
  arguments.length.equal?(2) && index_assignment_selector?
end