Module: RuboCop::AST::BinaryOperatorNode

Included in:
AndNode, OrNode
Defined in:
lib/rubocop/ast/node/mixin/binary_operator_node.rb

Overview

Common functionality for nodes that are binary operations: `or`, `and` …

Instance Method Summary collapse

Instance Method Details

#conditionsArray<Node>

Returns all of the conditions, including nested conditions, of the binary operation.

operation and the let and right hand side of any nested binary operators


28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/rubocop/ast/node/mixin/binary_operator_node.rb', line 28

def conditions
  lhs, rhs = *self
  lhs = lhs.children.first if lhs.begin_type?
  rhs = rhs.children.first if rhs.begin_type?

  [lhs, rhs].each_with_object([]) do |side, collection|
    if side.operator_keyword?
      collection.concat(side.conditions)
    else
      collection << side
    end
  end
end

#lhsNode

Returns the left hand side node of the binary operation.


11
12
13
# File 'lib/rubocop/ast/node/mixin/binary_operator_node.rb', line 11

def lhs
  node_parts[0]
end

#rhsNode

Returns the right hand side node of the binary operation.


18
19
20
# File 'lib/rubocop/ast/node/mixin/binary_operator_node.rb', line 18

def rhs
  node_parts[1]
end