Here we check if the keys, separators, and values of a multi-line hash literal are aligned.
# 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
Generated with the Darkfish Rdoc Generator 2.