tailor 0.0.3 → 0.1.0
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.
- data/History.txt +8 -0
- data/Manifest.txt +22 -2
- data/PostInstall.txt +4 -0
- data/README.rdoc +7 -6
- data/Rakefile +7 -1
- data/bin/tailor +21 -5
- data/features/indentation.feature +22 -0
- data/features/spacing.feature +13 -18
- data/features/spacing/commas.feature +44 -0
- data/features/step_definitions/indentation_steps.rb +139 -0
- data/features/step_definitions/spacing/commas_steps.rb +14 -0
- data/features/step_definitions/spacing_steps.rb +1 -36
- data/features/support/1_file_with_bad_comma_spacing/bad_comma_spacing.rb +43 -5
- data/features/support/1_file_with_bad_curly_brace_spacing/bad_curly_brace_spacing.rb +60 -0
- data/features/support/1_file_with_bad_operator_spacing/bad_op_spacing.rb +31 -0
- data/features/support/1_file_with_bad_parenthesis/bad_parenthesis.rb +1 -3
- data/features/support/1_file_with_bad_square_brackets/bad_square_brackets.rb +62 -0
- data/features/support/1_file_with_bad_ternary_colon_spacing/bad_ternary_colon_spacing.rb +31 -0
- data/features/support/1_good_simple_file/simple_project.rb +5 -0
- data/features/support/1_long_file_with_indentation/my_project.rb +56 -0
- data/features/support/common.rb +74 -1
- data/features/support/env.rb +3 -1
- data/features/support/world.rb +0 -52
- data/lib/tailor.rb +132 -41
- data/lib/tailor/file_line.rb +66 -177
- data/lib/tailor/indentation.rb +251 -0
- data/lib/tailor/spacing.rb +243 -0
- data/lib/tasks/metrics.rake +23 -0
- data/lib/tasks/stats.rake +11 -0
- data/logic.txt +30 -0
- data/ruby-style-checker.rb +77 -46
- data/spec/file_line_spec.rb +18 -193
- data/spec/indentation_spec.rb +259 -0
- data/spec/spacing/colon_spacing_spec.rb +71 -0
- data/spec/spacing/comma_spacing_spec.rb +159 -0
- data/spec/spacing/curly_brace_spacing_spec.rb +258 -0
- data/spec/spacing/parentheses_spacing_spec.rb +28 -0
- data/spec/spacing/square_bracket_spacing_spec.rb +116 -0
- data/spec/spacing_spec.rb +167 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/tailor_spec.rb +2 -2
- metadata +73 -38
- data/features/support/1_good_simple_file/my_project.rb +0 -7
- data/lib/tailor/indentation_checker.rb +0 -27
@@ -0,0 +1,259 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
require 'tailor/file_line'
|
3
|
+
require 'pathname'
|
4
|
+
|
5
|
+
include Tailor
|
6
|
+
|
7
|
+
def strip_regex regexp
|
8
|
+
original_regexp = regexp.source
|
9
|
+
|
10
|
+
case original_regexp
|
11
|
+
when /\\b\w+\\b/
|
12
|
+
return original_regexp.gsub!("\\b", '')
|
13
|
+
when /\w+{2,}/
|
14
|
+
return original_regexp.scan(/\w+{2,}/).first
|
15
|
+
when /\\\{\[/
|
16
|
+
return '{'
|
17
|
+
when /\*\\\}/
|
18
|
+
return '}'
|
19
|
+
when /\\\[\[/
|
20
|
+
return '['
|
21
|
+
when /\*\\\]/
|
22
|
+
return ']'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe Tailor::Indentation do
|
27
|
+
include Tailor::Indentation
|
28
|
+
|
29
|
+
context "should return the number of leading spaces in a line" do
|
30
|
+
it "when the line is not indented" do
|
31
|
+
line = create_file_line "def do_something", __LINE__
|
32
|
+
line.indented_spaces.should == 0
|
33
|
+
end
|
34
|
+
|
35
|
+
it "when the line is indented 1 space" do
|
36
|
+
line = create_file_line " def do_something", __LINE__
|
37
|
+
line.indented_spaces.should == 1
|
38
|
+
end
|
39
|
+
|
40
|
+
it "when the line is indented 1 space and a hard tab" do
|
41
|
+
line = create_file_line " \tdef do_something", __LINE__
|
42
|
+
line.indented_spaces.should == 1
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context "should know what level of indentation a line is at" do
|
47
|
+
context "for indent expressions" do
|
48
|
+
INDENT_EXPRESSIONS.each do |regexp|
|
49
|
+
expression = strip_regex(regexp)
|
50
|
+
|
51
|
+
it "when the '#{expression }' line is not indented" do
|
52
|
+
line = create_file_line "#{expression}", __LINE__
|
53
|
+
line.is_at_level.should == 0.0
|
54
|
+
end
|
55
|
+
|
56
|
+
it "when the '#{expression}' line is indented only 1 space" do
|
57
|
+
line = create_file_line " #{expression}", __LINE__
|
58
|
+
line.is_at_level.should == 0.5
|
59
|
+
end
|
60
|
+
|
61
|
+
it "when the '#{expression}' line is indented 2 spaces" do
|
62
|
+
line = create_file_line " #{expression}", __LINE__
|
63
|
+
line.is_at_level.should == 1.0
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context "for outdent expressions" do
|
69
|
+
OUTDENT_EXPRESSIONS.each do |regexp|
|
70
|
+
expression = strip_regex(regexp)
|
71
|
+
|
72
|
+
it "when the '#{expression }' line is not indented" do
|
73
|
+
line = create_file_line "#{expression}", __LINE__
|
74
|
+
line.is_at_level.should == 0.0
|
75
|
+
end
|
76
|
+
|
77
|
+
it "when the '#{expression}' line is indented only 1 space" do
|
78
|
+
line = create_file_line " #{expression}", __LINE__
|
79
|
+
line.is_at_level.should == 0.5
|
80
|
+
end
|
81
|
+
|
82
|
+
it "when the '#{expression}' line is indented 2 spaces" do
|
83
|
+
line = create_file_line " #{expression}", __LINE__
|
84
|
+
line.is_at_level.should == 1.0
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
context "for end expressions" do
|
90
|
+
END_EXPRESSIONS.each do |regexp|
|
91
|
+
expression = strip_regex(regexp)
|
92
|
+
|
93
|
+
it "when the '#{expression }' line is not indented" do
|
94
|
+
line = create_file_line "#{expression}", __LINE__
|
95
|
+
line.is_at_level.should == 0.0
|
96
|
+
end
|
97
|
+
|
98
|
+
it "when the '#{expression}' line is indented only 1 space" do
|
99
|
+
line = create_file_line " #{expression}", __LINE__
|
100
|
+
line.is_at_level.should == 0.5
|
101
|
+
end
|
102
|
+
|
103
|
+
it "when the '#{expression}' line is indented 2 spaces" do
|
104
|
+
line = create_file_line " #{expression}", __LINE__
|
105
|
+
line.is_at_level.should == 1.0
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
context "#indent?" do
|
112
|
+
INDENT_EXPRESSIONS.each do |regexp|
|
113
|
+
expression = strip_regex(regexp)
|
114
|
+
|
115
|
+
it "should return true if the line contains #{expression}" do
|
116
|
+
line = create_file_line "#{expression}", __LINE__
|
117
|
+
line.indent?.should be_true
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
context "#outdent?" do
|
123
|
+
OUTDENT_EXPRESSIONS.each do |regexp|
|
124
|
+
expression = strip_regex(regexp)
|
125
|
+
|
126
|
+
it "should return true if the line contains #{expression}" do
|
127
|
+
line = create_file_line "#{expression}", __LINE__
|
128
|
+
line.outdent?.should be_true
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
context "#contains_end?" do
|
134
|
+
END_EXPRESSIONS.each do |regexp|
|
135
|
+
expression = strip_regex(regexp)
|
136
|
+
|
137
|
+
it "should return true if the line contains #{expression}" do
|
138
|
+
line = create_file_line "#{expression}", __LINE__
|
139
|
+
line.contains_end?.should be_true
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
context "#at_improper_level?" do
|
145
|
+
it "should return true if the line is at the wrong level" do
|
146
|
+
proper_level = 1.0
|
147
|
+
line = create_file_line "class SomeClass", __LINE__
|
148
|
+
line.at_improper_level?(proper_level).should be_true
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should return false if the line is at the right level" do
|
152
|
+
proper_level = 0.0
|
153
|
+
line = create_file_line "class SomeClass", __LINE__
|
154
|
+
line.at_improper_level?(proper_level).should be_false
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
context "#ends_with_operator?" do
|
159
|
+
OPERATORS.each_pair do |op_family, op_values|
|
160
|
+
op_values.each do |op|
|
161
|
+
it "should return true if the line ends with a #{op}" do
|
162
|
+
line = create_file_line "1 #{op}", __LINE__
|
163
|
+
line.ends_with_operator?.should be_true
|
164
|
+
end
|
165
|
+
|
166
|
+
it "should return true if the line ends with a #{op} plus spaces" do
|
167
|
+
line = create_file_line "1 #{op} ", __LINE__
|
168
|
+
line.ends_with_operator?.should be_true
|
169
|
+
end
|
170
|
+
|
171
|
+
it "should return true if the line ends with a #{op} plus tabs" do
|
172
|
+
line = create_file_line "1 #{op}\t\t", __LINE__
|
173
|
+
line.ends_with_operator?.should be_true
|
174
|
+
end
|
175
|
+
|
176
|
+
it "should return true if the line only has spaces plus a #{op}" do
|
177
|
+
line = create_file_line " #{op}", __LINE__
|
178
|
+
line.ends_with_operator?.should be_true
|
179
|
+
end
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
it "should return false if the line doesn't contain an operator" do
|
184
|
+
line = create_file_line " def some_method(thing)", __LINE__
|
185
|
+
line.ends_with_operator?.should be_false
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
context "#ends_with_comma?" do
|
190
|
+
it "should return true if it ends with a ," do
|
191
|
+
line = create_file_line " def some_method(thing,", __LINE__
|
192
|
+
line.ends_with_comma?.should be_true
|
193
|
+
end
|
194
|
+
|
195
|
+
it "should return true if it ends with a , and spaces" do
|
196
|
+
line = create_file_line " def some_method(thing, ", __LINE__
|
197
|
+
line.ends_with_comma?.should be_true
|
198
|
+
end
|
199
|
+
|
200
|
+
it "should return true if it ends with a , and tabs" do
|
201
|
+
line = create_file_line " def some_method(thing,\t", __LINE__
|
202
|
+
line.ends_with_comma?.should be_true
|
203
|
+
end
|
204
|
+
|
205
|
+
it "should return false if it doesn't end with a ," do
|
206
|
+
line = create_file_line " def some_method(thing)", __LINE__
|
207
|
+
line.ends_with_comma?.should be_false
|
208
|
+
end
|
209
|
+
|
210
|
+
it "should return false if it has a , but doesn't end with one" do
|
211
|
+
line = create_file_line " def some_method(thing, other)", __LINE__
|
212
|
+
line.ends_with_comma?.should be_false
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
context "#ends_with_backslash?" do
|
217
|
+
it "should return true if it ends with a \\" do
|
218
|
+
line = create_file_line " def some_method(thing,\\", __LINE__
|
219
|
+
line.ends_with_backslash?.should be_true
|
220
|
+
end
|
221
|
+
|
222
|
+
it "should return true if it ends with a \\ and spaces" do
|
223
|
+
line = create_file_line " def some_method(thing,\\ ", __LINE__
|
224
|
+
line.ends_with_backslash?.should be_true
|
225
|
+
end
|
226
|
+
|
227
|
+
it "should return true if it ends with a \\ and tabs" do
|
228
|
+
line = create_file_line " def some_method(thing,\\\t", __LINE__
|
229
|
+
line.ends_with_backslash?.should be_true
|
230
|
+
end
|
231
|
+
|
232
|
+
it "should return false if it doesn't end with a \\" do
|
233
|
+
line = create_file_line " def some_method(thing)", __LINE__
|
234
|
+
line.ends_with_backslash?.should be_false
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
context "#unclosed_parenthesis?" do
|
239
|
+
it "should return true if it has a ( but no )" do
|
240
|
+
line = create_file_line " def some_method(thing,", __LINE__
|
241
|
+
line.unclosed_parenthesis?.should be_true
|
242
|
+
end
|
243
|
+
|
244
|
+
it "should return true if it has a ( but no ) and spaces" do
|
245
|
+
line = create_file_line " def some_method(thing, ", __LINE__
|
246
|
+
line.unclosed_parenthesis?.should be_true
|
247
|
+
end
|
248
|
+
|
249
|
+
it "should return true if it has a ( but no ) and tabs" do
|
250
|
+
line = create_file_line " def some_method(thing,\t\t", __LINE__
|
251
|
+
line.unclosed_parenthesis?.should be_true
|
252
|
+
end
|
253
|
+
|
254
|
+
it "should return false if it has a ( and a )" do
|
255
|
+
line = create_file_line " def some_method(thing)", __LINE__
|
256
|
+
line.unclosed_parenthesis?.should be_false
|
257
|
+
end
|
258
|
+
end
|
259
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
+
require 'tailor/file_line'
|
3
|
+
|
4
|
+
include Tailor
|
5
|
+
|
6
|
+
describe Tailor::FileLine, "spacing around colons" do
|
7
|
+
context "in ternary statments" do
|
8
|
+
it "should be OK with 1 space around colon" do
|
9
|
+
line = create_file_line " bobo = true ? true : false", __LINE__
|
10
|
+
line.spacing_problems.should == 0
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should detect 0 space after colon" do
|
14
|
+
line = create_file_line " bobo = true ? true :false", __LINE__
|
15
|
+
line.spacing_problems.should == 1
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should detect 0 space before colon" do
|
19
|
+
line = create_file_line " bobo = true ? true: false", __LINE__
|
20
|
+
line.spacing_problems.should == 1
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should detect 0 space before and after colon" do
|
24
|
+
line = create_file_line " bobo = true ? true:false", __LINE__
|
25
|
+
line.spacing_problems.should == 1
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should detect 2 spaces after colon" do
|
29
|
+
line = create_file_line " bobo = true ? true : false", __LINE__
|
30
|
+
line.spacing_problems.should == 1
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should detect 2 spaces before colon" do
|
34
|
+
line = create_file_line " bobo = true ? true : false", __LINE__
|
35
|
+
line.spacing_problems.should == 1
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should detect 2 spaces before and after colon" do
|
39
|
+
line = create_file_line " bobo = true ? true : false", __LINE__
|
40
|
+
line.spacing_problems.should == 1
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "in symbols" do
|
45
|
+
it "should be OK with 1 space before" do
|
46
|
+
line = create_file_line " bobo = { :thing => :clown }", __LINE__
|
47
|
+
line.spacing_problems.should == 0
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should be OK when Hash key, method with ? and symbol" do
|
51
|
+
line = create_file_line " bobo[:thing].eql? :clown", __LINE__
|
52
|
+
line.spacing_problems.should == 0
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should be OK in namespace operators" do
|
57
|
+
line = create_file_line "bobo[:thing] == :dog ? bobo[:thing] : Class::String",
|
58
|
+
__LINE__
|
59
|
+
line.spacing_problems.should == 0
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should be OK in Regexp classes" do
|
63
|
+
line = create_file_line "bobo[:thing].scan(/[:alpha:]/)", __LINE__
|
64
|
+
line.spacing_problems.should == 0
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should be OK in setting the global load path" do
|
68
|
+
line = create_file_line "$:.unshift File.dirname(__FILE__)", __LINE__
|
69
|
+
line.spacing_problems.should == 0
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,159 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
+
require 'tailor/file_line'
|
3
|
+
|
4
|
+
include Tailor
|
5
|
+
|
6
|
+
describe Tailor::FileLine, "spacing around commas" do
|
7
|
+
it "should be OK when followed by a \\ to signify line-continue" do
|
8
|
+
line = create_file_line "string = 'One, two, three,'\\", __LINE__
|
9
|
+
line.spacing_problems.should == 0
|
10
|
+
end
|
11
|
+
|
12
|
+
context "in a method line" do
|
13
|
+
it "should be OK when no commas" do
|
14
|
+
line = create_file_line " def do_something this", __LINE__
|
15
|
+
line.spacing_problems.should == 0
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should be OK when 0 spaces before and 1 space after a comma" do
|
19
|
+
line = create_file_line " def do_something this, that", __LINE__
|
20
|
+
line.spacing_problems.should == 0
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should detect 2 spaces after a comma" do
|
24
|
+
line = create_file_line " def do_something this, that", __LINE__
|
25
|
+
line.spacing_problems.should == 1
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should detect 0 spaces after a comma" do
|
29
|
+
line = create_file_line " def do_something this,that", __LINE__
|
30
|
+
line.spacing_problems.should == 1
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should detect 1 space before a comma" do
|
34
|
+
line = create_file_line " def do_something this , that", __LINE__
|
35
|
+
line.spacing_problems.should == 1
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should detect 1 space before a comma and 0 spaces after" do
|
39
|
+
line = create_file_line " def do_something this ,that", __LINE__
|
40
|
+
line.spacing_problems.should == 2
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "in a comment line" do
|
45
|
+
it "should be OK when no commas" do
|
46
|
+
line = create_file_line " # Comment line", __LINE__
|
47
|
+
line.spacing_problems.should == 0
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should be OK when 1 space after a comma" do
|
51
|
+
line = create_file_line " # Comment line, and stuff", __LINE__
|
52
|
+
line.spacing_problems.should == 0
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should detect 2 spaces after a comma" do
|
56
|
+
line = create_file_line " # Comment line, and stuff", __LINE__
|
57
|
+
line.spacing_problems.should == 1
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should detect 0 spaces after a comma" do
|
61
|
+
line = create_file_line " # Comment line,and stuff", __LINE__
|
62
|
+
line.spacing_problems.should == 1
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should detect 1 space before a comma" do
|
66
|
+
line = create_file_line " # Comment line , and stuff", __LINE__
|
67
|
+
line.spacing_problems.should == 1
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should detect 1 space before a comma and 0 spaces after" do
|
71
|
+
line = create_file_line " # Comment line ,and stuff", __LINE__
|
72
|
+
line.spacing_problems.should == 2
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should be OK when 0 spaces after a comma, but end of the line" do
|
76
|
+
line = create_file_line " # This is a comment that,\n", __LINE__
|
77
|
+
line.spacing_problems.should == 0
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should detect 2 spaces after a comma when at the end of a line" do
|
81
|
+
line = create_file_line " # This is a comment that, \n", __LINE__
|
82
|
+
line.spacing_problems.should == 1 # 1 for whitespace
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should detect 2 spaces after a comma" do
|
86
|
+
line = create_file_line " # This is a comment that, meows", __LINE__
|
87
|
+
line.spacing_problems.should == 1
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
context "in a statement with an Array" do
|
92
|
+
it "should be OK when no commas" do
|
93
|
+
line = create_file_line " bobo = ['hi']", __LINE__
|
94
|
+
line.spacing_problems.should == 0
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should be OK when 1 space after a comma" do
|
98
|
+
line = create_file_line " bobo = ['hi', 'meow']", __LINE__
|
99
|
+
line.spacing_problems.should == 0
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should detect 2 spaces after a comma" do
|
103
|
+
line = create_file_line " bobo = ['hi', 'meow']", __LINE__
|
104
|
+
line.spacing_problems.should == 1
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should detect 0 spaces after a comma" do
|
108
|
+
line = create_file_line " bobo = ['hi','meow']", __LINE__
|
109
|
+
line.spacing_problems.should == 1
|
110
|
+
end
|
111
|
+
|
112
|
+
it "should detect 1 space before a comma" do
|
113
|
+
line = create_file_line " bobo = ['hi' , 'meow']", __LINE__
|
114
|
+
line.spacing_problems.should == 1
|
115
|
+
end
|
116
|
+
|
117
|
+
it "should detect 1 space before a comma and 0 spaces after" do
|
118
|
+
line = create_file_line " bobo = ['hi' ,'meow']", __LINE__
|
119
|
+
line.spacing_problems.should == 2
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
context "in a statement with a Hash" do
|
124
|
+
it "should be OK when no commas" do
|
125
|
+
line = create_file_line "bobo = { :hi => 'meow' }", __LINE__
|
126
|
+
line.spacing_problems.should == 0
|
127
|
+
end
|
128
|
+
|
129
|
+
it "should be OK when 1 space after a comma" do
|
130
|
+
line = create_file_line "bobo = { :hi => 'meow', :bye => 'meow' }",
|
131
|
+
__LINE__
|
132
|
+
line.spacing_problems.should == 0
|
133
|
+
end
|
134
|
+
|
135
|
+
it "should detect 2 spaces after a comma" do
|
136
|
+
line = create_file_line "bobo = { :hi => 'meow', :bye => 'meow' }",
|
137
|
+
__LINE__
|
138
|
+
line.spacing_problems.should == 1
|
139
|
+
end
|
140
|
+
|
141
|
+
it "should detect 0 spaces after a comma" do
|
142
|
+
line = create_file_line "bobo = { :hi => 'meow',:bye => 'meow' }",
|
143
|
+
__LINE__
|
144
|
+
line.spacing_problems.should == 1
|
145
|
+
end
|
146
|
+
|
147
|
+
it "should detect 1 space before a comma" do
|
148
|
+
line = create_file_line "bobo = { :hi => 'meow' , :bye => 'meow' }",
|
149
|
+
__LINE__
|
150
|
+
line.spacing_problems.should == 1
|
151
|
+
end
|
152
|
+
|
153
|
+
it "should detect 1 space before a comma and 0 spaces after" do
|
154
|
+
line = create_file_line "bobo = { :hi => 'meow' ,:bye => 'meow' }",
|
155
|
+
__LINE__
|
156
|
+
line.spacing_problems.should == 2
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|