module RuboCop::AST::BinaryOperatorNode

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

Public Instance Methods

conditions() click to toggle source

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

@return [Array<Node>] the left and right hand side of the binary operation and the let and right hand side of any nested binary operators

# 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
lhs() click to toggle source

Returns the left hand side node of the binary operation.

@return [Node] the left hand side of the binary operation

# File lib/rubocop/ast/node/mixin/binary_operator_node.rb, line 11
def lhs
  node_parts[0]
end
rhs() click to toggle source

Returns the right hand side node of the binary operation.

@return [Node] the right hand side of the binary operation

# File lib/rubocop/ast/node/mixin/binary_operator_node.rb, line 18
def rhs
  node_parts[1]
end