class RuboCop::AST::WhenNode

A node extension for `when` nodes. This will be used in place of a plain node when the builder constructs the AST, making its methods available to all `when` nodes within RuboCop.

Public Instance Methods

body() click to toggle source

Returns the body of the `when` node.

@return [Node, nil] the body of the `when` node

# File lib/rubocop/ast/node/when_node.rb, line 48
def body
  node_parts[-1]
end
branch_index() click to toggle source

Returns the index of the `when` branch within the `case` statement.

@return [Integer] the index of the `when` branch

# File lib/rubocop/ast/node/when_node.rb, line 34
def branch_index
  parent.when_branches.index(self)
end
conditions() click to toggle source

Returns an array of all the conditions in the `when` branch.

@return [Array<Node>] an array of condition nodes

# File lib/rubocop/ast/node/when_node.rb, line 12
def conditions
  node_parts[0...-1]
end
each_condition() { |condition| ... } click to toggle source

Calls the given block for each condition node in the `when` branch. If no block is given, an `Enumerator` is returned.

@return [self] if a block is given @return [Enumerator] if no block is given

# File lib/rubocop/ast/node/when_node.rb, line 21
def each_condition
  return conditions.to_enum(__method__) unless block_given?

  conditions.each do |condition|
    yield condition
  end

  self
end
then?() click to toggle source

Checks whether the `when` node has a `then` keyword.

@return [Boolean] whether the `when` node has a `then` keyword

# File lib/rubocop/ast/node/when_node.rb, line 41
def then?
  loc.begin&.is?('then')
end