tailor 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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