tailor 1.4.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -3
  3. data/Gemfile.lock +39 -31
  4. data/History.md +220 -207
  5. data/README.md +58 -45
  6. data/features/step_definitions/indentation_steps.rb +1 -1
  7. data/lib/tailor/reporter.rb +19 -7
  8. data/lib/tailor/rulers/spaces_before_lbrace_ruler.rb +0 -1
  9. data/lib/tailor/rulers/spaces_before_rbrace_ruler.rb +0 -1
  10. data/lib/tailor/rulers/spaces_in_empty_braces_ruler.rb +0 -1
  11. data/lib/tailor/version.rb +1 -1
  12. data/spec/functional/conditional_parentheses_spec.rb +1 -1
  13. data/spec/functional/conditional_spacing_spec.rb +1 -1
  14. data/spec/functional/configuration_spec.rb +61 -52
  15. data/spec/functional/horizontal_spacing/braces_spec.rb +134 -134
  16. data/spec/functional/horizontal_spacing/brackets_spec.rb +34 -36
  17. data/spec/functional/horizontal_spacing/comma_spacing_spec.rb +25 -27
  18. data/spec/functional/horizontal_spacing/hard_tabs_spec.rb +42 -42
  19. data/spec/functional/horizontal_spacing/long_lines_spec.rb +15 -17
  20. data/spec/functional/horizontal_spacing/long_methods_spec.rb +4 -4
  21. data/spec/functional/horizontal_spacing/parens_spec.rb +45 -45
  22. data/spec/functional/horizontal_spacing/trailing_whitespace_spec.rb +7 -8
  23. data/spec/functional/horizontal_spacing_spec.rb +10 -11
  24. data/spec/functional/indentation_spacing/argument_alignment_spec.rb +33 -62
  25. data/spec/functional/indentation_spacing/bad_indentation_spec.rb +176 -179
  26. data/spec/functional/indentation_spacing_spec.rb +13 -14
  27. data/spec/functional/naming/camel_case_methods_spec.rb +4 -6
  28. data/spec/functional/naming/screaming_snake_case_classes_spec.rb +28 -31
  29. data/spec/functional/naming_spec.rb +3 -3
  30. data/spec/functional/rake_task_spec.rb +9 -28
  31. data/spec/functional/string_interpolation_spec.rb +1 -1
  32. data/spec/functional/string_quoting_spec.rb +1 -1
  33. data/spec/functional/vertical_spacing/class_length_spec.rb +4 -6
  34. data/spec/functional/vertical_spacing/method_length_spec.rb +15 -17
  35. data/spec/functional/vertical_spacing_spec.rb +3 -3
  36. data/spec/spec_helper.rb +2 -0
  37. data/spec/support/argument_alignment_cases.rb +32 -32
  38. data/spec/support/conditional_parentheses_cases.rb +26 -26
  39. data/spec/support/good_indentation_cases.rb +205 -205
  40. data/spec/support/horizontal_spacing_cases.rb +53 -54
  41. data/spec/support/line_indentation_cases.rb +20 -20
  42. data/spec/support/naming_cases.rb +12 -12
  43. data/spec/support/string_interpolation_cases.rb +17 -17
  44. data/spec/support/string_quoting_cases.rb +12 -12
  45. data/spec/support/vertical_spacing_cases.rb +8 -8
  46. data/spec/unit/tailor/cli/options_spec.rb +20 -14
  47. data/spec/unit/tailor/cli_spec.rb +29 -43
  48. data/spec/unit/tailor/composite_observable_spec.rb +1 -1
  49. data/spec/unit/tailor/configuration/file_set_spec.rb +10 -11
  50. data/spec/unit/tailor/configuration/style_spec.rb +41 -42
  51. data/spec/unit/tailor/configuration_spec.rb +14 -12
  52. data/spec/unit/tailor/formatter_spec.rb +3 -3
  53. data/spec/unit/tailor/formatters/yaml_spec.rb +12 -13
  54. data/spec/unit/tailor/lexed_line_spec.rb +67 -69
  55. data/spec/unit/tailor/lexer/token_spec.rb +7 -7
  56. data/spec/unit/tailor/lexer_spec.rb +24 -24
  57. data/spec/unit/tailor/problem_spec.rb +12 -12
  58. data/spec/unit/tailor/reporter_spec.rb +8 -9
  59. data/spec/unit/tailor/ruler_spec.rb +10 -10
  60. data/spec/unit/tailor/rulers/indentation_spaces_ruler/indentation_manager_spec.rb +90 -86
  61. data/spec/unit/tailor/rulers/indentation_spaces_ruler_spec.rb +13 -13
  62. data/spec/unit/tailor/rulers/spaces_after_comma_ruler_spec.rb +4 -4
  63. data/spec/unit/tailor/rulers/spaces_after_lbrace_ruler_spec.rb +19 -19
  64. data/spec/unit/tailor/rulers/spaces_before_lbrace_ruler_spec.rb +6 -6
  65. data/spec/unit/tailor/rulers/spaces_before_rbrace_ruler_spec.rb +6 -6
  66. data/spec/unit/tailor/rulers_spec.rb +1 -1
  67. data/spec/unit/tailor/version_spec.rb +1 -2
  68. data/spec/unit/tailor_spec.rb +2 -2
  69. data/tailor.gemspec +3 -3
  70. metadata +20 -6
@@ -3,7 +3,6 @@ require_relative '../../support/bad_indentation_cases'
3
3
  require 'tailor/critic'
4
4
  require 'tailor/configuration/style'
5
5
 
6
-
7
6
  describe 'Detection of method length' do
8
7
  before do
9
8
  Tailor::Logger.stub(:log)
@@ -29,339 +28,337 @@ describe 'Detection of method length' do
29
28
  context 'simple classes' do
30
29
  context 'empty with an indented end' do
31
30
  let(:file_name) { 'class_indented_end' }
32
- specify { critic.problems[file_name].size.should be 1 }
33
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
34
- specify { critic.problems[file_name].first[:line].should be 2 }
35
- specify { critic.problems[file_name].first[:column].should be 1 }
36
- specify { critic.problems[file_name].first[:level].should be :error }
31
+ specify { expect(critic.problems[file_name].size).to eq 1 }
32
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
33
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
34
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
35
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
37
36
  end
38
37
 
39
38
  context 'body extra indented' do
40
39
  let(:file_name) { 'class_indented_single_statement' }
41
- specify { critic.problems[file_name].size.should be 1 }
42
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
43
- specify { critic.problems[file_name].first[:line].should be 2 }
44
- specify { critic.problems[file_name].first[:column].should be 3 }
45
- specify { critic.problems[file_name].first[:level].should be :error }
40
+ specify { expect(critic.problems[file_name].size).to eq 1 }
41
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
42
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
43
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
44
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
46
45
  end
47
46
 
48
47
  context 'body extra indented, trailing comment' do
49
48
  let(:file_name) { 'class_indented_single_statement_trailing_comment' }
50
- specify { critic.problems[file_name].size.should be 1 }
51
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
52
- specify { critic.problems[file_name].first[:line].should be 2 }
53
- specify { critic.problems[file_name].first[:column].should be 3 }
54
- specify { critic.problems[file_name].first[:level].should be :error }
49
+ specify { expect(critic.problems[file_name].size).to eq 1 }
50
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
51
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
52
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
53
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
55
54
  end
56
55
 
57
56
  context 'body extra outdented' do
58
57
  let(:file_name) { 'class_outdented_single_statement' }
59
- specify { critic.problems[file_name].size.should be 1 }
60
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
61
- specify { critic.problems[file_name].first[:line].should be 2 }
62
- specify { critic.problems[file_name].first[:column].should be 1 }
63
- specify { critic.problems[file_name].first[:level].should be :error }
58
+ specify { expect(critic.problems[file_name].size).to eq 1 }
59
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
60
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
61
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
62
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
64
63
  end
65
64
  end
66
65
 
67
66
  context 'simple methods' do
68
67
  context 'empty with an indented end' do
69
68
  let(:file_name) { 'def_indented_end' }
70
- specify { critic.problems[file_name].size.should be 1 }
71
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
72
- specify { critic.problems[file_name].first[:line].should be 2 }
73
- specify { critic.problems[file_name].first[:column].should be 1 }
74
- specify { critic.problems[file_name].first[:level].should be :error }
69
+ specify { expect(critic.problems[file_name].size).to eq 1 }
70
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
71
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
72
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
73
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
75
74
  end
76
75
 
77
76
  context 'body and end extra indented' do
78
77
  let(:file_name) { 'def_content_indented_end' }
79
- specify { critic.problems[file_name].size.should be 1 }
80
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
81
- specify { critic.problems[file_name].first[:line].should be 3 }
82
- specify { critic.problems[file_name].first[:column].should be 1 }
83
- specify { critic.problems[file_name].first[:level].should be :error }
78
+ specify { expect(critic.problems[file_name].size).to eq 1 }
79
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
80
+ specify { expect(critic.problems[file_name].first[:line]).to eq 3 }
81
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
82
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
84
83
  end
85
84
 
86
85
  context 'in a class, end outdented' do
87
86
  let(:file_name) { 'class_def_content_outdented_end' }
88
- specify { critic.problems[file_name].size.should be 1 }
89
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
90
- specify { critic.problems[file_name].first[:line].should be 4 }
91
- specify { critic.problems[file_name].first[:column].should be 1 }
92
- specify { critic.problems[file_name].first[:level].should be :error }
87
+ specify { expect(critic.problems[file_name].size).to eq 1 }
88
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
89
+ specify { expect(critic.problems[file_name].first[:line]).to eq 4 }
90
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
91
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
93
92
  end
94
93
 
95
94
  context 'in a class, body outdented' do
96
95
  let(:file_name) { 'class_def_outdented_content' }
97
- specify { critic.problems[file_name].size.should be 1 }
98
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
99
- specify { critic.problems[file_name].first[:line].should be 3 }
100
- specify { critic.problems[file_name].first[:column].should be 3 }
101
- specify { critic.problems[file_name].first[:level].should be :error }
96
+ specify { expect(critic.problems[file_name].size).to eq 1 }
97
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
98
+ specify { expect(critic.problems[file_name].first[:line]).to eq 3 }
99
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
100
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
102
101
  end
103
102
 
104
103
  context 'class method outdented, in a class' do
105
104
  let(:file_name) { 'class_method_def_using_self_outdented' }
106
- specify { critic.problems[file_name].size.should be 1 }
107
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
108
- specify { critic.problems[file_name].first[:line].should be 2 }
109
- specify { critic.problems[file_name].first[:column].should be 1 }
110
- specify { critic.problems[file_name].first[:level].should be :error }
105
+ specify { expect(critic.problems[file_name].size).to eq 1 }
106
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
107
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
108
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
109
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
111
110
  end
112
111
  end
113
112
 
114
113
  context 'case statements' do
115
114
  context 'case extra indented' do
116
115
  let(:file_name) { 'case_indented_whens_level' }
117
- specify { critic.problems[file_name].size.should be 1 }
118
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
119
- specify { critic.problems[file_name].first[:line].should be 2 }
120
- specify { critic.problems[file_name].first[:column].should be 3 }
121
- specify { critic.problems[file_name].first[:level].should be :error }
116
+ specify { expect(critic.problems[file_name].size).to eq 1 }
117
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
118
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
119
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
120
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
122
121
  end
123
122
 
124
123
  context 'case extra indented, trailing comment' do
125
124
  let(:file_name) { 'case_indented_whens_level_trailing_comment' }
126
- specify { critic.problems[file_name].size.should be 1 }
127
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
128
- specify { critic.problems[file_name].first[:line].should be 2 }
129
- specify { critic.problems[file_name].first[:column].should be 3 }
130
- specify { critic.problems[file_name].first[:level].should be :error }
125
+ specify { expect(critic.problems[file_name].size).to eq 1 }
126
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
127
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
128
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
129
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
131
130
  end
132
131
 
133
132
  context 'case extra outdented' do
134
133
  let(:file_name) { 'case_outdented_whens_level' }
135
- specify { critic.problems[file_name].size.should be 1 }
136
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
137
- specify { critic.problems[file_name].first[:line].should be 2 }
138
- specify { critic.problems[file_name].first[:column].should be 1 }
139
- specify { critic.problems[file_name].first[:level].should be :error }
134
+ specify { expect(critic.problems[file_name].size).to eq 1 }
135
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
136
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
137
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
138
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
140
139
  end
141
140
 
142
141
  context 'when extra intdented' do
143
142
  let(:file_name) { 'case_when_indented_whens_level' }
144
- specify { critic.problems[file_name].size.should be 1 }
145
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
146
- specify { critic.problems[file_name].first[:line].should be 3 }
147
- specify { critic.problems[file_name].first[:column].should be 3 }
148
- specify { critic.problems[file_name].first[:level].should be :error }
143
+ specify { expect(critic.problems[file_name].size).to eq 1 }
144
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
145
+ specify { expect(critic.problems[file_name].first[:line]).to eq 3 }
146
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
147
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
149
148
  end
150
149
 
151
150
  context 'when extra outdented' do
152
151
  let(:file_name) { 'case_when_outdented_whens_level' }
153
- specify { critic.problems[file_name].size.should be 1 }
154
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
155
- specify { critic.problems[file_name].first[:line].should be 3 }
156
- specify { critic.problems[file_name].first[:column].should be 1 }
157
- specify { critic.problems[file_name].first[:level].should be :error }
152
+ specify { expect(critic.problems[file_name].size).to eq 1 }
153
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
154
+ specify { expect(critic.problems[file_name].first[:line]).to eq 3 }
155
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
156
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
158
157
  end
159
158
 
160
159
  context 'case extra indented' do
161
160
  pending 'Implementation of option to allow whens in'
162
161
 
163
- =begin
164
- let(:file_name) { 'case_indented_whens_in' }
165
- specify { critic.problems[file_name].size.should be 1 }
166
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
167
- specify { critic.problems[file_name].first[:line].should be 2 }
168
- specify { critic.problems[file_name].first[:column].should be 1 }
169
- specify { critic.problems[file_name].first[:level].should be :error }
170
- =end
162
+ # let(:file_name) { 'case_indented_whens_in' }
163
+ # specify { expect(critic.problems[file_name].size).to eq 1 }
164
+ # specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
165
+ # specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
166
+ # specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
167
+ # specify { expect(critic.problems[file_name].first[:level]).to eq :error }
171
168
  end
172
169
  end
173
170
 
174
171
  context 'while/do loops' do
175
172
  context 'while/do indented' do
176
173
  let(:file_name) { 'while_do_indented' }
177
- specify { critic.problems[file_name].size.should be 1 }
178
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
179
- specify { critic.problems[file_name].first[:line].should be 1 }
180
- specify { critic.problems[file_name].first[:column].should be 1 }
181
- specify { critic.problems[file_name].first[:level].should be :error }
174
+ specify { expect(critic.problems[file_name].size).to eq 1 }
175
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
176
+ specify { expect(critic.problems[file_name].first[:line]).to eq 1 }
177
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
178
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
182
179
  end
183
180
 
184
181
  context 'while/do outdented' do
185
182
  let(:file_name) { 'while_do_outdented' }
186
- specify { critic.problems[file_name].size.should be 1 }
187
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
188
- specify { critic.problems[file_name].first[:line].should be 2 }
189
- specify { critic.problems[file_name].first[:column].should be 1 }
190
- specify { critic.problems[file_name].first[:level].should be :error }
183
+ specify { expect(critic.problems[file_name].size).to eq 1 }
184
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
185
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
186
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
187
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
191
188
  end
192
189
 
193
190
  context 'while/do content outdented' do
194
191
  let(:file_name) { 'while_do_content_outdented' }
195
- specify { critic.problems[file_name].size.should be 1 }
196
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
197
- specify { critic.problems[file_name].first[:line].should be 3 }
198
- specify { critic.problems[file_name].first[:column].should be 3 }
199
- specify { critic.problems[file_name].first[:level].should be :error }
192
+ specify { expect(critic.problems[file_name].size).to eq 1 }
193
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
194
+ specify { expect(critic.problems[file_name].first[:line]).to eq 3 }
195
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
196
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
200
197
  end
201
198
 
202
199
  context 'while/do content indented' do
203
200
  let(:file_name) { 'while_do_content_indented' }
204
- specify { critic.problems[file_name].size.should be 1 }
205
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
206
- specify { critic.problems[file_name].first[:line].should be 3 }
207
- specify { critic.problems[file_name].first[:column].should be 5 }
208
- specify { critic.problems[file_name].first[:level].should be :error }
201
+ specify { expect(critic.problems[file_name].size).to eq 1 }
202
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
203
+ specify { expect(critic.problems[file_name].first[:line]).to eq 3 }
204
+ specify { expect(critic.problems[file_name].first[:column]).to eq 5 }
205
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
209
206
  end
210
207
 
211
208
  context 'another while/do indented' do
212
209
  let(:file_name) { 'while_do_indented2' }
213
- specify { critic.problems[file_name].size.should be 1 }
214
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
215
- specify { critic.problems[file_name].first[:line].should be 4 }
216
- specify { critic.problems[file_name].first[:column].should be 1 }
217
- specify { critic.problems[file_name].first[:level].should be :error }
210
+ specify { expect(critic.problems[file_name].size).to eq 1 }
211
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
212
+ specify { expect(critic.problems[file_name].first[:line]).to eq 4 }
213
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
214
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
218
215
  end
219
216
 
220
217
  context 'another while/do indented, trailing comment' do
221
218
  let(:file_name) { 'while_do_indented2_trailing_comment' }
222
- specify { critic.problems[file_name].size.should be 1 }
223
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
224
- specify { critic.problems[file_name].first[:line].should be 4 }
225
- specify { critic.problems[file_name].first[:column].should be 1 }
226
- specify { critic.problems[file_name].first[:level].should be :error }
219
+ specify { expect(critic.problems[file_name].size).to eq 1 }
220
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
221
+ specify { expect(critic.problems[file_name].first[:line]).to eq 4 }
222
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
223
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
227
224
  end
228
225
  end
229
226
 
230
227
  context 'until/do loops' do
231
228
  context 'until indented' do
232
229
  let(:file_name) { 'until_do_indented' }
233
- specify { critic.problems[file_name].size.should be 1 }
234
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
235
- specify { critic.problems[file_name].first[:line].should be 4 }
236
- specify { critic.problems[file_name].first[:column].should be 1 }
237
- specify { critic.problems[file_name].first[:level].should be :error }
230
+ specify { expect(critic.problems[file_name].size).to eq 1 }
231
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
232
+ specify { expect(critic.problems[file_name].first[:line]).to eq 4 }
233
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
234
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
238
235
  end
239
236
  end
240
237
 
241
238
  context 'for/do loops' do
242
239
  context 'for indented' do
243
240
  let(:file_name) { 'for_do_indented' }
244
- specify { critic.problems[file_name].size.should be 1 }
245
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
246
- specify { critic.problems[file_name].first[:line].should be 1 }
247
- specify { critic.problems[file_name].first[:column].should be 1 }
248
- specify { critic.problems[file_name].first[:level].should be :error }
241
+ specify { expect(critic.problems[file_name].size).to eq 1 }
242
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
243
+ specify { expect(critic.problems[file_name].first[:line]).to eq 1 }
244
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
245
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
249
246
  end
250
247
  end
251
248
 
252
249
  context 'loop/do loops' do
253
250
  context 'loop indented' do
254
251
  let(:file_name) { 'loop_do_indented' }
255
- specify { critic.problems[file_name].size.should be 1 }
256
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
257
- specify { critic.problems[file_name].first[:line].should be 1 }
258
- specify { critic.problems[file_name].first[:column].should be 1 }
259
- specify { critic.problems[file_name].first[:level].should be :error }
252
+ specify { expect(critic.problems[file_name].size).to eq 1 }
253
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
254
+ specify { expect(critic.problems[file_name].first[:line]).to eq 1 }
255
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
256
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
260
257
  end
261
258
  end
262
259
 
263
260
  context 'if statements' do
264
261
  context 'first line extra indented' do
265
262
  let(:file_name) { 'if_line_indented' }
266
- specify { critic.problems[file_name].size.should be 1 }
267
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
268
- specify { critic.problems[file_name].first[:line].should be 2 }
269
- specify { critic.problems[file_name].first[:column].should be 3 }
270
- specify { critic.problems[file_name].first[:level].should be :error }
263
+ specify { expect(critic.problems[file_name].size).to eq 1 }
264
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
265
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
266
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
267
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
271
268
  end
272
269
 
273
270
  context 'first line extra indented, trailing comment' do
274
271
  let(:file_name) { 'if_line_indented_trailing_comment' }
275
- specify { critic.problems[file_name].size.should be 1 }
276
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
277
- specify { critic.problems[file_name].first[:line].should be 2 }
278
- specify { critic.problems[file_name].first[:column].should be 3 }
279
- specify { critic.problems[file_name].first[:level].should be :error }
272
+ specify { expect(critic.problems[file_name].size).to eq 1 }
273
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
274
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
275
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
276
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
280
277
  end
281
278
  end
282
279
 
283
280
  context 'multi_line_tstring' do
284
281
  let(:file_name) { 'multi_line_tstring' }
285
- specify { critic.problems[file_name].size.should be 1 }
286
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
287
- specify { critic.problems[file_name].first[:line].should be 2 }
288
- specify { critic.problems[file_name].first[:column].should be 0 }
289
- specify { critic.problems[file_name].first[:level].should be :error }
282
+ specify { expect(critic.problems[file_name].size).to eq 1 }
283
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
284
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
285
+ specify { expect(critic.problems[file_name].first[:column]).to eq 0 }
286
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
290
287
  end
291
288
 
292
289
  context 'operators' do
293
290
  context 'multi-line &&, first line indented' do
294
291
  let(:file_name) { 'multi_line_andop_first_line_indented' }
295
- specify { critic.problems[file_name].size.should be 1 }
296
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
297
- specify { critic.problems[file_name].first[:line].should be 2 }
298
- specify { critic.problems[file_name].first[:column].should be 3 }
299
- specify { critic.problems[file_name].first[:level].should be :error }
292
+ specify { expect(critic.problems[file_name].size).to eq 1 }
293
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
294
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
295
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
296
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
300
297
  end
301
298
 
302
299
  context 'multi-line &&, first line indented, trailing comment' do
303
300
  let(:file_name) { 'multi_line_andop_first_line_indented_trailing_comment' }
304
- specify { critic.problems[file_name].size.should be 1 }
305
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
306
- specify { critic.problems[file_name].first[:line].should be 2 }
307
- specify { critic.problems[file_name].first[:column].should be 3 }
308
- specify { critic.problems[file_name].first[:level].should be :error }
301
+ specify { expect(critic.problems[file_name].size).to eq 1 }
302
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
303
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
304
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
305
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
309
306
  end
310
307
 
311
308
  context 'multi-line &&, second line indented' do
312
309
  let(:file_name) { 'multi_line_andop_second_line_indented' }
313
- specify { critic.problems[file_name].size.should be 1 }
314
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
315
- specify { critic.problems[file_name].first[:line].should be 3 }
316
- specify { critic.problems[file_name].first[:column].should be 5 }
317
- specify { critic.problems[file_name].first[:level].should be :error }
310
+ specify { expect(critic.problems[file_name].size).to eq 1 }
311
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
312
+ specify { expect(critic.problems[file_name].first[:line]).to eq 3 }
313
+ specify { expect(critic.problems[file_name].first[:column]).to eq 5 }
314
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
318
315
  end
319
316
 
320
317
  context 'multi-line string concat, second line outdented' do
321
318
  let(:file_name) { 'multi_line_string_concat_with_plus_out' }
322
- specify { critic.problems[file_name].size.should be 1 }
323
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
324
- specify { critic.problems[file_name].first[:line].should be 2 }
325
- specify { critic.problems[file_name].first[:column].should be 1 }
326
- specify { critic.problems[file_name].first[:level].should be :error }
319
+ specify { expect(critic.problems[file_name].size).to eq 1 }
320
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
321
+ specify { expect(critic.problems[file_name].first[:line]).to eq 2 }
322
+ specify { expect(critic.problems[file_name].first[:column]).to eq 1 }
323
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
327
324
  end
328
325
  end
329
326
 
330
327
  context 'combinations of stuff' do
331
328
  context 'multi-line if with end in' do
332
329
  let(:file_name) { 'multi_line_method_call_end_in' }
333
- specify { critic.problems[file_name].size.should be 1 }
334
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
335
- specify { critic.problems[file_name].first[:line].should be 5 }
336
- specify { critic.problems[file_name].first[:column].should be 3 }
337
- specify { critic.problems[file_name].first[:level].should be :error }
330
+ specify { expect(critic.problems[file_name].size).to eq 1 }
331
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
332
+ specify { expect(critic.problems[file_name].first[:line]).to eq 5 }
333
+ specify { expect(critic.problems[file_name].first[:column]).to eq 3 }
334
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
338
335
  end
339
336
 
340
337
  context 'multi-line chained methods with 2nd line in' do
341
338
  let(:file_name) { 'multi_line_method_call_ends_with_period_2nd_line_in' }
342
- specify { critic.problems[file_name].size.should be 1 }
343
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
344
- specify { critic.problems[file_name].first[:line].should be 4 }
345
- specify { critic.problems[file_name].first[:column].should be 5 }
346
- specify { critic.problems[file_name].first[:level].should be :error }
339
+ specify { expect(critic.problems[file_name].size).to eq 1 }
340
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
341
+ specify { expect(critic.problems[file_name].first[:line]).to eq 4 }
342
+ specify { expect(critic.problems[file_name].first[:column]).to eq 5 }
343
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
347
344
  end
348
345
 
349
346
  context 'multi-line chained methods with 3rd line in' do
350
347
  let(:file_name) { 'multi_line_method_call_ends_with_many_periods_last_in' }
351
- specify { critic.problems[file_name].size.should be 1 }
352
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
353
- specify { critic.problems[file_name].first[:line].should be 3 }
354
- specify { critic.problems[file_name].first[:column].should be 4 }
355
- specify { critic.problems[file_name].first[:level].should be :error }
348
+ specify { expect(critic.problems[file_name].size).to eq 1 }
349
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
350
+ specify { expect(critic.problems[file_name].first[:line]).to eq 3 }
351
+ specify { expect(critic.problems[file_name].first[:column]).to eq 4 }
352
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
356
353
  end
357
354
 
358
355
  context 'multi-line chained methods with 3rd line in, trailing comment' do
359
356
  let(:file_name) { 'multi_line_method_call_ends_with_many_periods_last_in_trailing_comment' }
360
- specify { critic.problems[file_name].size.should be 1 }
361
- specify { critic.problems[file_name].first[:type].should == 'indentation_spaces' }
362
- specify { critic.problems[file_name].first[:line].should be 3 }
363
- specify { critic.problems[file_name].first[:column].should be 4 }
364
- specify { critic.problems[file_name].first[:level].should be :error }
357
+ specify { expect(critic.problems[file_name].size).to eq 1 }
358
+ specify { expect(critic.problems[file_name].first[:type]).to eq 'indentation_spaces' }
359
+ specify { expect(critic.problems[file_name].first[:line]).to eq 3 }
360
+ specify { expect(critic.problems[file_name].first[:column]).to eq 4 }
361
+ specify { expect(critic.problems[file_name].first[:level]).to eq :error }
365
362
  end
366
363
  end
367
364
  end