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

Inherits:
Object
  • Object
show all
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

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)


34
35
36
# File 'lib/mutant/ast/meta/send.rb', line 34

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)


41
42
43
44
# File 'lib/mutant/ast/meta/send.rb', line 41

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

Returns:

  • (Boolean)


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

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

Returns:

  • (Boolean)


49
50
51
# File 'lib/mutant/ast/meta/send.rb', line 49

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

Returns:

  • (Boolean)


27
28
29
# File 'lib/mutant/ast/meta/send.rb', line 27

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

Returns:

  • (Boolean)


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

def receiver_possible_top_level_const?
  return false unless receiver && n_const?(receiver)

  Const.new(receiver).possible_top_level?
end