Parent

Methods

Included Modules

Files

Class/Module Index [+]

Quicksearch

RuboCop::Cop::Style::AlignHash

Here we check if the keys, separators, and values of a multi-line hash literal are aligned.

Constants

MSG

Public Instance Methods

on_hash(node) click to toggle source
# File lib/rubocop/cop/style/align_hash.rb, line 155
def on_hash(node)
  return if ignored_node?(node)
  return if node.children.empty?
  return unless multiline?(node)

  @alignment_for_hash_rockets ||=
    new_alignment('EnforcedHashRocketStyle')
  @alignment_for_colons ||= new_alignment('EnforcedColonStyle')

  first_pair = node.children.first

  unless @alignment_for_hash_rockets.checkable_layout(node) &&
      @alignment_for_colons.checkable_layout(node)
    return
  end

  @column_deltas = alignment_for(first_pair)
    .deltas_for_first_pair(first_pair, node)
  add_offense(first_pair, :expression) unless good_alignment?

  node.children.each_cons(2) do |prev, current|
    @column_deltas = alignment_for(current).deltas(first_pair, prev,
                                                   current)
    add_offense(current, :expression) unless good_alignment?
  end
end
on_send(node) click to toggle source
# File lib/rubocop/cop/style/align_hash.rb, line 148
def on_send(node)
  return unless (last_child = node.children.last) &&
    hash?(last_child) && ignore_last_argument_hash?(last_child)

  ignore_node(last_child)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.