Class: RuboCop::Cop::Style::IndentationWidth
Overview
This cops checks for indentation that doesn't use two spaces.
class A
def test
puts 'hello'
end
end
Constant Summary
collapse
- CORRECT_INDENTATION =
2
AccessModifierNode::MODUDULE_FUNCTION_NODE, AccessModifierNode::PRIVATE_NODE, AccessModifierNode::PROTECTED_NODE, AccessModifierNode::PUBLIC_NODE
CheckAssignment::TYPES
Constants included
from Util
Util::ASGN_NODES, Util::EQUALS_ASGN_NODES, Util::OPERATOR_METHODS, Util::PROC_NEW_NODE, Util::SHORTHAND_ASGN_NODES
Instance Attribute Summary
Attributes inherited from Cop
#config, #corrections, #offenses, #processed_source
Instance Method Summary
collapse
#modifier_node?
Methods included from IfNode
#elsif?, #if_else?, #modifier_if?, #ternary_op?
#on_casgn, #on_op_asgn
Methods included from OnMethod
#on_def, #on_defs
#autocorrect, #check_alignment, #start_of_line?
Methods inherited from Cop
#add_offense, all, #autocorrect?, #config_to_allow_offenses, #config_to_allow_offenses=, #cop_config, cop_name, #cop_name, cop_type, #debug?, #display_cop_names?, inherited, #initialize, #join_force?, lint?, #message, non_rails, qualified_cop_name, rails?, #relevant_file?, #support_autocorrect?
#ignore_node, #ignored_node?, #part_of_ignored_node?
Methods included from Util
begins_its_line?, block_length, command?, comment_line?, const_name, first_part_of_call_chain, lambda?, lambda_or_proc?, line_range, numeric_range_size, on_node, operator?, parentheses?, proc?, range_with_surrounding_space, source_range, strip_quotes
Methods included from PathUtil
match_path?, relative_path
Instance Method Details
#on_block(node) ⇒ Object
45
46
47
48
49
50
51
52
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 45
def on_block(node)
_method, _args, body = *node
loc = node.loc
check_indentation(loc.end, body) if begins_its_line?(loc.end)
end
|
#on_case(node) ⇒ Object
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 94
def on_case(node)
_condition, *branches = *node
latest_when = nil
branches.compact.each do |b|
if b.type == :when
body = b.children.last
check_indentation(b.loc.keyword, body)
latest_when = b
else
check_indentation(latest_when.loc.keyword, b)
end
end
end
|
#on_class(node) ⇒ Object
59
60
61
62
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 59
def on_class(node)
_class_name, _base_class, *members = *node
members.each { |m| check_indentation(node.loc.keyword, m) }
end
|
#on_ensure(node) ⇒ Object
33
34
35
36
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 33
def on_ensure(node)
_body, ensure_body = *node
check_indentation(node.loc.keyword, ensure_body)
end
|
#on_for(node) ⇒ Object
79
80
81
82
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 79
def on_for(node)
_variable, _collection, body = *node
check_indentation(node.loc.keyword, body)
end
|
#on_if(node, base = node) ⇒ Object
127
128
129
130
131
132
133
134
135
136
137
138
139
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 127
def on_if(node, base = node)
return if ignored_node?(node)
return if ternary_op?(node)
return if modifier_if?(node)
case node.loc.keyword.source
when 'if' then _condition, body, else_clause = *node
when 'unless' then _condition, else_clause, body = *node
else _condition, body = *node
end
check_if(node, body, else_clause, base.loc) if body
end
|
#on_kwbegin(node) ⇒ Object
38
39
40
41
42
43
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 38
def on_kwbegin(node)
return unless begins_its_line?(node.loc.end)
check_indentation(node.loc.end, node.children.first)
end
|
#on_method(node, _method_name, _args, body) ⇒ Object
75
76
77
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 75
def on_method(node, _method_name, _args, body)
check_indentation(node.loc.keyword, body) unless ignored_node?(node)
end
|
#on_module(node) ⇒ Object
54
55
56
57
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 54
def on_module(node)
_module_name, *members = *node
members.each { |m| check_indentation(node.loc.keyword, m) }
end
|
#on_rescue(node) ⇒ Object
24
25
26
27
28
29
30
31
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 24
def on_rescue(node)
_begin_node, *rescue_nodes, else_node = *node
rescue_nodes.each do |rescue_node|
_, _, body = *rescue_node
check_indentation(rescue_node.loc.keyword, body)
end
check_indentation(node.loc.else, else_node)
end
|
#on_send(node) ⇒ Object
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 64
def on_send(node)
super
receiver, method_name, *args = *node
return unless visibility_and_def_on_same_line?(receiver, method_name,
args)
_method_name, _args, body = *args.first
check_indentation(node.loc.expression, body)
ignore_node(args.first)
end
|
#on_while(node, base = node) ⇒ Object
Also known as:
on_until
84
85
86
87
88
89
90
|
# File 'lib/rubocop/cop/style/indentation_width.rb', line 84
def on_while(node, base = node)
_condition, body = *node
return unless node.loc.keyword.begin_pos ==
node.loc.expression.begin_pos
check_indentation(base.loc, body)
end
|