9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/runger_style/cops/default/multiline_hash_value_indentation.rb', line 9
def on_pair(node)
key_node = node.key
value_node = node.value
if key_node.loc.expression.last_line != value_node.source_range.line
key_column = key_node.source_range.column
expected_value_column = key_column + 2
actual_value_column = value_node.source_range.column
if actual_value_column != expected_value_column
add_offense(value_node, message: MSG) do |corrector|
buffer = value_node.source_range.source_buffer
line_range = buffer.line_range(value_node.source_range.line)
indentation_range =
Parser::Source::Range.new(
buffer,
line_range.begin_pos,
value_node.source_range.begin_pos,
)
corrector.replace(indentation_range, ' ' * expected_value_column)
end
end
end
end
|