Module: RuboCop::AST::HashElementNode

Included in:
KeywordSplatNode, PairNode
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 collapse

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



61
62
63
# 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



13
14
15
# 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



43
44
45
# 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`



32
33
34
# 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



22
23
24
# 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



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

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