123456789_123456789_123456789_123456789_123456789_

Module: RuboCop::AST::HashElementNode

Relationships & Source Files
Namespace Children
Classes:
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: lib/rubocop/ast/node/mixin/hash_element_node.rb

Overview

Common functionality for nodes that can be used as hash elements: pair, kwsplat

Instance Method Summary

Instance Method Details

#delimiter_delta(other) ⇒ Integer

Note:

Pairs with different delimiter styles return a delta of 0

Returns the delta between this element’s delimiter and the argument’s.

Returns:

  • (Integer)

    the delta between the two delimiters

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/hash_element_node.rb', line 61

def delimiter_delta(other)
  HashElementDelta.new(self, other).delimiter_delta
end

#keyNode

Note:

For keyword splats, this returns the whole node

Returns the key of this hash element.

Returns:

  • (Node)

    the key of the hash element

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/hash_element_node.rb', line 13

def key
  node_parts[0]
end

#key_delta(other, alignment = :left) ⇒ Integer

Note:

Keys on the same line always return a delta of 0

Note:

Keyword splats always return a delta of 0 for right alignment

Returns the delta between this pair’s key and the argument pair’s.

Parameters:

  • alignment (Symbol) (defaults to: :left)

    whether to check the left or right side

Returns:

  • (Integer)

    the delta between the two keys

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/hash_element_node.rb', line 43

def key_delta(other, alignment = :left)
  HashElementDelta.new(self, other).key_delta(alignment)
end

#same_line?(other) ⇒ Boolean

Note:

A multiline element is considered to be on the same line if it shares any of its lines with other

Checks whether this hash element is on the same line as other.

Returns:

  • (Boolean)

    whether this element is on the same line as other

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/hash_element_node.rb', line 32

def same_line?(other)
  loc.last_line == other.loc.line || loc.line == other.loc.last_line
end

#valueNode

Note:

For keyword splats, this returns the whole node

Returns the value of this hash element.

Returns:

  • (Node)

    the value of the hash element

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/hash_element_node.rb', line 22

def value
  node_parts[1]
end

#value_delta(other) ⇒ Integer

Note:

Keyword splats always return a delta of 0

Returns the delta between this element’s value and the argument’s.

Returns:

  • (Integer)

    the delta between the two values

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/hash_element_node.rb', line 52

def value_delta(other)
  HashElementDelta.new(self, other).value_delta
end