tailor 0.1.5 → 1.0.0.alpha
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +9 -1
- data/.rspec +2 -1
- data/.tailor +6 -0
- data/Gemfile.lock +47 -78
- data/{ChangeLog.rdoc → History.rdoc} +0 -0
- data/README.rdoc +157 -24
- data/Rakefile +0 -9
- data/bin/tailor +16 -69
- data/features/configurable.feature +78 -0
- data/features/horizontal_spacing.feature +262 -0
- data/features/indentation.feature +17 -21
- data/features/indentation/bad_files_with_no_trailing_newline.feature +90 -0
- data/features/indentation/good_files_with_no_trailing_newline.feature +206 -0
- data/features/name_detection.feature +72 -0
- data/features/step_definitions/indentation_steps.rb +10 -133
- data/features/support/env.rb +7 -15
- data/features/support/file_cases/horizontal_spacing_cases.rb +265 -0
- data/features/support/file_cases/indentation_cases.rb +972 -0
- data/features/support/file_cases/naming_cases.rb +52 -0
- data/features/support/file_cases/vertical_spacing_cases.rb +70 -0
- data/features/support/hooks.rb +8 -0
- data/features/support/{1_file_with_bad_operator_spacing → legacy}/bad_op_spacing.rb +0 -0
- data/features/support/{1_file_with_bad_ternary_colon_spacing → legacy}/bad_ternary_colon_spacing.rb +0 -0
- data/features/support/{1_long_file_with_indentation/my_project.rb → legacy/long_file_with_indentation.rb} +1 -1
- data/features/support/world.rb +14 -0
- data/features/vertical_spacing.feature +114 -0
- data/lib/ext/string_ext.rb +5 -0
- data/lib/tailor.rb +6 -252
- data/lib/tailor/cli.rb +49 -0
- data/lib/tailor/cli/options.rb +251 -0
- data/lib/tailor/composite_observable.rb +56 -0
- data/lib/tailor/configuration.rb +263 -0
- data/lib/tailor/critic.rb +162 -0
- data/lib/tailor/formatters/text.rb +126 -0
- data/lib/tailor/lexed_line.rb +246 -0
- data/lib/tailor/lexer.rb +428 -0
- data/lib/tailor/lexer/token.rb +103 -0
- data/lib/tailor/lexer_constants.rb +75 -0
- data/lib/tailor/logger.rb +28 -0
- data/lib/tailor/problem.rb +100 -0
- data/lib/tailor/reporter.rb +48 -0
- data/lib/tailor/ruler.rb +39 -0
- data/lib/tailor/rulers.rb +7 -0
- data/lib/tailor/rulers/allow_camel_case_methods_ruler.rb +30 -0
- data/lib/tailor/rulers/allow_hard_tabs_ruler.rb +22 -0
- data/lib/tailor/rulers/allow_screaming_snake_case_classes_ruler.rb +32 -0
- data/lib/tailor/rulers/allow_trailing_line_spaces_ruler.rb +33 -0
- data/lib/tailor/rulers/indentation_spaces_ruler.rb +199 -0
- data/lib/tailor/rulers/indentation_spaces_ruler/indentation_manager.rb +362 -0
- data/lib/tailor/rulers/max_code_lines_in_class_ruler.rb +84 -0
- data/lib/tailor/rulers/max_code_lines_in_method_ruler.rb +84 -0
- data/lib/tailor/rulers/max_line_length_ruler.rb +31 -0
- data/lib/tailor/rulers/spaces_after_comma_ruler.rb +83 -0
- data/lib/tailor/rulers/spaces_after_lbrace_ruler.rb +114 -0
- data/lib/tailor/rulers/spaces_after_lbracket_ruler.rb +123 -0
- data/lib/tailor/rulers/spaces_after_lparen_ruler.rb +116 -0
- data/lib/tailor/rulers/spaces_before_comma_ruler.rb +67 -0
- data/lib/tailor/rulers/spaces_before_lbrace_ruler.rb +93 -0
- data/lib/tailor/rulers/spaces_before_rbrace_ruler.rb +98 -0
- data/lib/tailor/rulers/spaces_before_rbracket_ruler.rb +70 -0
- data/lib/tailor/rulers/spaces_before_rparen_ruler.rb +70 -0
- data/lib/tailor/rulers/spaces_in_empty_braces_ruler.rb +94 -0
- data/lib/tailor/rulers/trailing_newlines_ruler.rb +36 -0
- data/lib/tailor/runtime_error.rb +3 -0
- data/lib/tailor/tailorrc.erb +88 -0
- data/lib/tailor/version.rb +2 -2
- data/spec/spec_helper.rb +7 -5
- data/spec/tailor/cli_spec.rb +94 -0
- data/spec/tailor/configuration_spec.rb +147 -0
- data/spec/tailor/critic_spec.rb +63 -0
- data/spec/tailor/lexed_line_spec.rb +569 -0
- data/spec/tailor/lexer/token_spec.rb +46 -0
- data/spec/tailor/lexer_spec.rb +181 -0
- data/spec/tailor/options_spec.rb +6 -0
- data/spec/tailor/problem_spec.rb +74 -0
- data/spec/tailor/reporter_spec.rb +53 -0
- data/spec/tailor/ruler_spec.rb +56 -0
- data/spec/tailor/rulers/indentation_spaces_ruler/indentation_manager_spec.rb +454 -0
- data/spec/tailor/rulers/indentation_spaces_ruler_spec.rb +128 -0
- data/spec/tailor/rulers/spaces_after_comma_spec.rb +31 -0
- data/spec/tailor/rulers/spaces_after_lbrace_ruler_spec.rb +145 -0
- data/spec/tailor/rulers/spaces_before_lbrace_ruler_spec.rb +63 -0
- data/spec/tailor/rulers/spaces_before_rbrace_ruler_spec.rb +63 -0
- data/spec/tailor/rulers_spec.rb +9 -0
- data/spec/tailor/version_spec.rb +6 -0
- data/spec/tailor_spec.rb +9 -21
- data/tailor.gemspec +22 -35
- data/tasks/features.rake +7 -0
- data/tasks/roodi.rake +9 -0
- data/tasks/roodi_config.yaml +14 -0
- data/tasks/spec.rake +16 -0
- data/tasks/yard.rake +14 -0
- metadata +224 -77
- data/features/case_checking.feature +0 -38
- data/features/spacing.feature +0 -97
- data/features/spacing/commas.feature +0 -44
- data/features/step_definitions/case_checking_steps.rb +0 -42
- data/features/step_definitions/spacing_steps.rb +0 -156
- data/features/support/1_file_with_bad_comma_spacing/bad_comma_spacing.rb +0 -43
- data/features/support/1_file_with_bad_curly_brace_spacing/bad_curly_brace_spacing.rb +0 -60
- data/features/support/1_file_with_bad_parenthesis/bad_parenthesis.rb +0 -4
- data/features/support/1_file_with_bad_square_brackets/bad_square_brackets.rb +0 -62
- data/features/support/1_file_with_camel_case_class/camel_case_class.rb +0 -5
- data/features/support/1_file_with_camel_case_method/camel_case_method.rb +0 -3
- data/features/support/1_file_with_hard_tabs/hard_tab.rb +0 -3
- data/features/support/1_file_with_long_lines/long_lines.rb +0 -5
- data/features/support/1_file_with_snake_case_class/snake_case_class.rb +0 -5
- data/features/support/1_file_with_snake_case_method/snake_case_method.rb +0 -3
- data/features/support/1_file_with_trailing_whitespace/trailing_whitespace.rb +0 -5
- data/features/support/1_good_simple_file/simple_project.rb +0 -5
- data/features/support/common.rb +0 -102
- data/features/support/matchers.rb +0 -11
- data/lib/tailor/file_line.rb +0 -220
- data/lib/tailor/indentation.rb +0 -245
- data/lib/tailor/spacing.rb +0 -237
- data/spec/file_line_spec.rb +0 -70
- data/spec/indentation_spec.rb +0 -259
- data/spec/spacing/colon_spacing_spec.rb +0 -71
- data/spec/spacing/comma_spacing_spec.rb +0 -159
- data/spec/spacing/curly_brace_spacing_spec.rb +0 -257
- data/spec/spacing/parentheses_spacing_spec.rb +0 -28
- data/spec/spacing/square_bracket_spacing_spec.rb +0 -116
- data/spec/spacing_spec.rb +0 -167
- data/tasks/metrics.rake +0 -23
@@ -1,38 +0,0 @@
|
|
1
|
-
Feature: Case checking
|
2
|
-
In order to make sure certain words are upper or lower case as they should be
|
3
|
-
As a Ruby developer
|
4
|
-
I want to find out which files have words that aren't in the proper case
|
5
|
-
|
6
|
-
Scenario: Method names that are camel-cased are detected
|
7
|
-
Given I have a project directory "1_file_with_camel_case_method"
|
8
|
-
And I have "1" file in my project
|
9
|
-
And that file does not contain any "class" statements
|
10
|
-
And the file contains only "1" "def" statement
|
11
|
-
And the file contains a "method" that has a camel-cased name
|
12
|
-
When I run the checker on the project
|
13
|
-
Then the checker should tell me I have a camel-cased method name
|
14
|
-
|
15
|
-
Scenario: Method names that are snake-cased are not reported
|
16
|
-
Given I have a project directory "1_file_with_snake_case_method"
|
17
|
-
And I have "1" file in my project
|
18
|
-
And that file does not contain any "class" statements
|
19
|
-
And the file contains only "1" "def" statement
|
20
|
-
And the file contains a "method" that has a snake-cased name
|
21
|
-
When I run the checker on the project
|
22
|
-
Then the checker shouldn't tell me the method name is camel-case
|
23
|
-
|
24
|
-
Scenario: Class names that are camel-cased are not reported
|
25
|
-
Given I have a project directory "1_file_with_camel_case_class"
|
26
|
-
And I have "1" file in my project
|
27
|
-
And the file contains only "1" "class" statement
|
28
|
-
And the file contains a "class" that has a camel-cased name
|
29
|
-
When I run the checker on the project
|
30
|
-
Then the checker shouldn't tell me the class name is camel-case
|
31
|
-
|
32
|
-
Scenario: Class names that are snake-cased are detected
|
33
|
-
Given I have a project directory "1_file_with_snake_case_class"
|
34
|
-
And I have "1" file in my project
|
35
|
-
And the file contains only "1" "class" statement
|
36
|
-
And the file contains a "class" that has a snake-cased name
|
37
|
-
When I run the checker on the project
|
38
|
-
Then the checker should tell me the class name is not camel-case
|
data/features/spacing.feature
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
Feature: Spacing
|
2
|
-
In order to determine if my Ruby file is spaced according to
|
3
|
-
standards
|
4
|
-
As a Ruby developer
|
5
|
-
I want to find out which files have spacing problems,
|
6
|
-
which lines those problems occur on,
|
7
|
-
and what type of spacing they're missing
|
8
|
-
|
9
|
-
Scenario: A single class-less file with hard tabs
|
10
|
-
Given I have a project directory "1_file_with_hard_tabs"
|
11
|
-
And I have 1 file in my project
|
12
|
-
And that file does not contain any "class" statements
|
13
|
-
And the file contains only 1 "def" statement
|
14
|
-
And that file contains lines with hard tabs
|
15
|
-
When I run the checker on the project
|
16
|
-
Then the checker should tell me each line that has a hard tab
|
17
|
-
|
18
|
-
Scenario: A single file that has all lines with trailing whitespace
|
19
|
-
Given I have a project directory "1_file_with_trailing_whitespace"
|
20
|
-
And I have 1 file in my project
|
21
|
-
And that file contains lines with trailing whitespace
|
22
|
-
When I run the checker on the project
|
23
|
-
Then the checker should tell me each line has trailing whitespace
|
24
|
-
|
25
|
-
Scenario: A single file that has a comment and a code line 90 characters long
|
26
|
-
Given I have a project directory "1_file_with_long_lines"
|
27
|
-
And I have 1 file in my project
|
28
|
-
And that file contains lines longer than 80 characters
|
29
|
-
When I run the checker on the project
|
30
|
-
Then the checker should tell me each line is too long
|
31
|
-
|
32
|
-
Scenario: A single file that has a comment, method name, and statement without spaces after the commas
|
33
|
-
Given I have a project directory "1_file_with_bad_comma_spacing"
|
34
|
-
And I have 1 file in my project
|
35
|
-
And that file contains a "comment" line without spaces after commas
|
36
|
-
And that file contains a "method" line without spaces after commas
|
37
|
-
And that file contains a "statement" line without spaces after commas
|
38
|
-
When I run the checker on the project
|
39
|
-
Then the checker should tell me each line has commas without spaces after them
|
40
|
-
|
41
|
-
Scenario: A single file that has a comment, method name, and statement with > 1 spaces after the commas
|
42
|
-
Given I have a project directory "1_file_with_bad_comma_spacing"
|
43
|
-
And I have 1 file in my project
|
44
|
-
And that file contains a "comment" line with > 1 spaces after commas
|
45
|
-
And that file contains a "method" line with > 1 spaces after commas
|
46
|
-
And that file contains a "statement" line with > 1 spaces after commas
|
47
|
-
When I run the checker on the project
|
48
|
-
Then the checker should tell me each line has commas with > 1 spaces after them
|
49
|
-
|
50
|
-
Scenario: A single file that has a comment, method name, and statement with spaces before the commas
|
51
|
-
Given I have a project directory "1_file_with_bad_comma_spacing"
|
52
|
-
And I have 1 file in my project
|
53
|
-
And that file contains a "comment" line with spaces before commas
|
54
|
-
And that file contains a "method" line with spaces before commas
|
55
|
-
And that file contains a "statement" line with spaces before commas
|
56
|
-
When I run the checker on the project
|
57
|
-
Then the checker should tell me each line has commas with spaces before them
|
58
|
-
|
59
|
-
Scenario: A single file that has a comment, method, and statement with spaces after open parentheses
|
60
|
-
Given I have a project directory "1_file_with_bad_parenthesis"
|
61
|
-
And I have 1 file in my project
|
62
|
-
And that file contains a "comment" line with spaces after an open parenthesis
|
63
|
-
And that file contains a "method" line with spaces after an open parenthesis
|
64
|
-
And that file contains a "statement" line with spaces after an open parenthesis
|
65
|
-
When I run the checker on the project
|
66
|
-
Then the checker should tell me each line has open parentheses with spaces before them
|
67
|
-
|
68
|
-
Scenario: A single file that has a comment, method, and statement with spaces after open brackets
|
69
|
-
Given I have a project directory "1_file_with_bad_parenthesis"
|
70
|
-
And I have 1 file in my project
|
71
|
-
And that file contains a "comment" line with spaces after an open bracket
|
72
|
-
And that file contains a "method" line with spaces after an open bracket
|
73
|
-
And that file contains a "statement" line with spaces after an open bracket
|
74
|
-
When I run the checker on the project
|
75
|
-
Then the checker should tell me each line has open brackets with spaces before them
|
76
|
-
|
77
|
-
Scenario: A single file that has a comment, method, and statement with spaces before closed parentheses
|
78
|
-
Given I have a project directory "1_file_with_bad_parenthesis"
|
79
|
-
And I have 1 file in my project
|
80
|
-
And that file contains a "comment" line with spaces after an open parenthesis
|
81
|
-
And that file contains a "method" line with spaces after an open parenthesis
|
82
|
-
And that file contains a "statement" line with spaces after an open parenthesis
|
83
|
-
When I run the checker on the project
|
84
|
-
Then the checker should tell me each line has closed parentheses with spaces before them
|
85
|
-
|
86
|
-
Scenario: A single file that has a comment, method, and statement with spaces before closed brackets
|
87
|
-
Given I have a project directory "1_file_with_bad_parenthesis"
|
88
|
-
And I have 1 file in my project
|
89
|
-
And that file contains a "comment" line with spaces after an open bracket
|
90
|
-
And that file contains a "method" line with spaces after an open bracket
|
91
|
-
And that file contains a "statement" line with spaces after an open bracket
|
92
|
-
When I run the checker on the project
|
93
|
-
Then the checker should tell me each line has closed brackets with spaces before them
|
94
|
-
|
95
|
-
Scenario: A single file that has a comment, method, and statement with each operator
|
96
|
-
Given I have a project directory "1_file_with_bad_operator_spacing"
|
97
|
-
And I have 1 file in my project
|
@@ -1,44 +0,0 @@
|
|
1
|
-
Feature: Detect bad spacing around commas
|
2
|
-
As a Ruby developer
|
3
|
-
I want to detect bad spacing around commas in my code
|
4
|
-
So that it's easy to read and maintain
|
5
|
-
|
6
|
-
Scenario: More than 1 space after a comma
|
7
|
-
Given a file with 1 space after a comma in a:
|
8
|
-
| Type |
|
9
|
-
| comment |
|
10
|
-
| method |
|
11
|
-
| Array |
|
12
|
-
| Hash |
|
13
|
-
|
14
|
-
Scenario: 0 spaces after a comma
|
15
|
-
Given a file with 0 spaces after a comma in a:
|
16
|
-
| Type |
|
17
|
-
| comment |
|
18
|
-
| method |
|
19
|
-
| Array |
|
20
|
-
| Hash |
|
21
|
-
|
22
|
-
Scenario: 1 space after a comma
|
23
|
-
Given a file with 1 space after a comma in a:
|
24
|
-
| Type |
|
25
|
-
| comment |
|
26
|
-
| method |
|
27
|
-
| Array |
|
28
|
-
| Hash |
|
29
|
-
|
30
|
-
Scenario: More than 0 spaces before a comma
|
31
|
-
Given a file with more than 0 spaces before a comma in a:
|
32
|
-
| Type |
|
33
|
-
| comment |
|
34
|
-
| method |
|
35
|
-
| Array |
|
36
|
-
| Hash |
|
37
|
-
|
38
|
-
Scenario: 0 spaces before a comma
|
39
|
-
Given a file with 0 spaces before a comma in a:
|
40
|
-
| Type |
|
41
|
-
| comment |
|
42
|
-
| method |
|
43
|
-
| Array |
|
44
|
-
| Hash |
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'tailor/file_line'
|
2
|
-
|
3
|
-
def contains_camel_case? keyword
|
4
|
-
@ruby_source = File.open(@file_list[0], 'r')
|
5
|
-
|
6
|
-
contains_camel_case = false
|
7
|
-
@ruby_source.each_line do |source_line|
|
8
|
-
line = FileLine.new source_line
|
9
|
-
|
10
|
-
if keyword.eql? "method"
|
11
|
-
line.snake_case_method? ? (return false) : (return false)
|
12
|
-
elsif keyword.eql? "class"
|
13
|
-
line.camel_case_class? ? (return true) : (return false)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
Given /^the file contains a "([^\"]*)" that has a camel\-cased name$/ do
|
19
|
-
|keyword|
|
20
|
-
contains_camel_case?(keyword).should be_true
|
21
|
-
end
|
22
|
-
|
23
|
-
Given /^the file contains a "([^\"]*)" that has a snake\-cased name$/ do
|
24
|
-
|keyword|
|
25
|
-
contains_camel_case?(keyword).should be_false
|
26
|
-
end
|
27
|
-
|
28
|
-
Then /^the checker should tell me I have a camel\-cased method name$/ do
|
29
|
-
@result.should include("Method name uses camel case")
|
30
|
-
end
|
31
|
-
|
32
|
-
Then /^the checker shouldn't tell me the method name is camel\-case$/ do
|
33
|
-
@result.should_not include("Method name uses camel case")
|
34
|
-
end
|
35
|
-
|
36
|
-
Then /^the checker shouldn't tell me the class name is camel\-case$/ do
|
37
|
-
@result.should_not include("Class name uses camel case")
|
38
|
-
end
|
39
|
-
|
40
|
-
Then /^the checker should tell me the class name is not camel\-case$/ do
|
41
|
-
@result.should include("Class name does NOT use camel case")
|
42
|
-
end
|
@@ -1,156 +0,0 @@
|
|
1
|
-
require 'tailor/file_line'
|
2
|
-
|
3
|
-
def check_spacing method_name, line_type
|
4
|
-
is_line_type = false
|
5
|
-
bad_spacing = false
|
6
|
-
line_number = 1
|
7
|
-
|
8
|
-
file_path = Pathname.new(File.expand_path(@file_list[0]))
|
9
|
-
|
10
|
-
check_file do |line|
|
11
|
-
source_line = Tailor::FileLine.new(line, file_path, line_number)
|
12
|
-
|
13
|
-
is_line_type = source_line.send("#{line_type}_line?")
|
14
|
-
bad_spacing = source_line.send(method_name)
|
15
|
-
|
16
|
-
break line if is_line_type == true and bad_spacing == true
|
17
|
-
|
18
|
-
line_number += 1
|
19
|
-
end
|
20
|
-
|
21
|
-
is_line_type.should be_true
|
22
|
-
bad_spacing.should be_true
|
23
|
-
end
|
24
|
-
|
25
|
-
#-----------------------------------------------------------------------------
|
26
|
-
# "Given" statements
|
27
|
-
#-----------------------------------------------------------------------------
|
28
|
-
Given /^that file contains lines with hard tabs$/ do
|
29
|
-
contains_hard_tabs = false
|
30
|
-
line_number = 1
|
31
|
-
|
32
|
-
file_path = Pathname.new(File.expand_path(@file_list[0]))
|
33
|
-
|
34
|
-
check_file do |line|
|
35
|
-
source_line = Tailor::FileLine.new(line, file_path, line_number)
|
36
|
-
if source_line.hard_tabbed?
|
37
|
-
contains_hard_tabs = true
|
38
|
-
break
|
39
|
-
end
|
40
|
-
line_number += 1
|
41
|
-
end
|
42
|
-
|
43
|
-
contains_hard_tabs.should be_true
|
44
|
-
end
|
45
|
-
|
46
|
-
Given /^that file contains lines with trailing whitespace$/ do
|
47
|
-
line_number = 1
|
48
|
-
|
49
|
-
file_path = Pathname.new(File.expand_path(@file_list[0]))
|
50
|
-
|
51
|
-
check_file do |line|
|
52
|
-
source_line = Tailor::FileLine.new(line, file_path, line_number)
|
53
|
-
|
54
|
-
@whitespace_count = source_line.trailing_whitespace_count
|
55
|
-
|
56
|
-
@whitespace_count.should > 0
|
57
|
-
|
58
|
-
line_number += 1
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
Given /^that file contains lines longer than 80 characters$/ do
|
63
|
-
line_number = 1
|
64
|
-
|
65
|
-
file_path = Pathname.new(File.expand_path(@file_list[0]))
|
66
|
-
|
67
|
-
check_file do |line|
|
68
|
-
source_line = Tailor::FileLine.new(line, file_path, line_number)
|
69
|
-
|
70
|
-
if source_line.too_long?
|
71
|
-
too_long = true
|
72
|
-
break
|
73
|
-
else
|
74
|
-
too_long = false
|
75
|
-
end
|
76
|
-
|
77
|
-
too_long.should be_true
|
78
|
-
|
79
|
-
line_number += 1
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
Given /^that file contains a "([^\"]*)" line without spaces after commas$/ do |line_type|
|
84
|
-
check_spacing("no_space_after_comma?", line_type)
|
85
|
-
end
|
86
|
-
|
87
|
-
Given /^that file contains a "([^\"]*)" line with > 1 spaces after commas$/ do |line_type|
|
88
|
-
check_spacing("more_than_one_space_after_comma?", line_type)
|
89
|
-
end
|
90
|
-
|
91
|
-
Given /^that file contains a "([^\"]*)" line with spaces before commas$/ do |line_type|
|
92
|
-
check_spacing("space_before_comma?", line_type)
|
93
|
-
end
|
94
|
-
|
95
|
-
Given /^that file contains a "([^\"]*)" line with spaces after open parentheses$/ do |line_type|
|
96
|
-
check_spacing("space_after_open_parenthesis?", line_type)
|
97
|
-
end
|
98
|
-
|
99
|
-
Given /^that file contains a "([^\"]*)" line with spaces after an open bracket$/ do |line_type|
|
100
|
-
check_spacing("space_after_open_bracket?", line_type)
|
101
|
-
end
|
102
|
-
|
103
|
-
Given /^that file contains a "([^\"]*)" line with spaces after an open parenthesis$/ do |line_type|
|
104
|
-
check_spacing("space_before_closed_parenthesis?", line_type)
|
105
|
-
end
|
106
|
-
|
107
|
-
#-----------------------------------------------------------------------------
|
108
|
-
# "Then" statements
|
109
|
-
#-----------------------------------------------------------------------------
|
110
|
-
Then /^the checker should tell me each line that has a hard tab$/ do
|
111
|
-
@result.should include("Line contains hard tabs")
|
112
|
-
end
|
113
|
-
|
114
|
-
Then /^the checker should tell me each line has trailing whitespace$/ do
|
115
|
-
@result.should include("Line contains #{@whitespace_count} trailing whitespace(s)")
|
116
|
-
end
|
117
|
-
|
118
|
-
Then /^the checker should tell me each line is too long$/ do
|
119
|
-
message = "Line is >#{Tailor::FileLine::LINE_LENGTH_MAX} characters"
|
120
|
-
@result.should include(message)
|
121
|
-
end
|
122
|
-
|
123
|
-
Then /^the checker should tell me each line has commas without spaces after them$/ do
|
124
|
-
message = "Line has a comma with 0 spaces after it"
|
125
|
-
@result.should include(message)
|
126
|
-
end
|
127
|
-
|
128
|
-
Then /^the checker should tell me each line has commas with spaces before them$/ do
|
129
|
-
message = "Line has at least one space before a comma"
|
130
|
-
@result.should include(message)
|
131
|
-
end
|
132
|
-
|
133
|
-
Then /^the checker should tell me each line has commas with > 1 spaces after them$/ do
|
134
|
-
message = "Line has a comma with > 1 space after it"
|
135
|
-
@result.should include(message)
|
136
|
-
end
|
137
|
-
|
138
|
-
Then /^the checker should tell me each line has open parentheses with spaces before them$/ do
|
139
|
-
message = "Line has an open parenthesis with spaces after it"
|
140
|
-
@result.should include(message)
|
141
|
-
end
|
142
|
-
|
143
|
-
Then /^the checker should tell me each line has open brackets with spaces before them$/ do
|
144
|
-
message = "Line has an open bracket with spaces after it"
|
145
|
-
@result.should include(message)
|
146
|
-
end
|
147
|
-
|
148
|
-
Then /^the checker should tell me each line has closed parentheses with spaces before them$/ do
|
149
|
-
message = "Line has a closed parenthesis with spaces before it"
|
150
|
-
@result.should include(message)
|
151
|
-
end
|
152
|
-
|
153
|
-
Then /^the checker should tell me each line has closed brackets with spaces before them$/ do
|
154
|
-
message = "Line has a closed bracket with spaces before it"
|
155
|
-
@result.should include(message)
|
156
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# Perfect spacing after a comma, in comment and method
|
2
|
-
def do_something this, that, other
|
3
|
-
puts "We, I mean I, am doing, er, something!"
|
4
|
-
end
|
5
|
-
|
6
|
-
# More than one space, after a comma, in a comment & method
|
7
|
-
def do_something this, that, other
|
8
|
-
puts "We, I mean I, am doing, er, something!"
|
9
|
-
end
|
10
|
-
|
11
|
-
# No space,after a comma,in a comment & method
|
12
|
-
def do_something this,that,other
|
13
|
-
puts "We,I mean I ,am doing,er ,something!"
|
14
|
-
end
|
15
|
-
|
16
|
-
# Spaces , before a comma ,in a comment & method
|
17
|
-
def do_something this , that ,other
|
18
|
-
puts "We , I mean I ,am doing ,er , something!"
|
19
|
-
end
|
20
|
-
|
21
|
-
# Perfect spacing around a comma, in an array
|
22
|
-
thing = [ 1, 2, 3 ]
|
23
|
-
|
24
|
-
# More than one space, after elements in an array
|
25
|
-
thing = [ 1, 2, 3 ]
|
26
|
-
|
27
|
-
# No space, after elements in an array
|
28
|
-
thing = [ 1,2,3 ]
|
29
|
-
|
30
|
-
# Spaces, before elements in an array
|
31
|
-
thing = [ 1 , 2 ,3 ]
|
32
|
-
|
33
|
-
# Perfect spacing around a comma, in a hash
|
34
|
-
thing = { :one => 1, :two => 2, :three => 3 }
|
35
|
-
|
36
|
-
# More than one space, after elements in a hash
|
37
|
-
thing = { :one => 1, :two => 2, :three => 3 }
|
38
|
-
|
39
|
-
# No space, after elements in an array
|
40
|
-
thing = { :one => 1,:two => 2,:three => 3 }
|
41
|
-
|
42
|
-
# Spaces, before elements in an array
|
43
|
-
thing = { :one => 1 , :two => 2 , :three => 3 }
|
@@ -1,60 +0,0 @@
|
|
1
|
-
# Blocks...
|
2
|
-
# No space after {
|
3
|
-
1..10.times {|number| puts number }
|
4
|
-
|
5
|
-
# No space before {
|
6
|
-
1..10.times{ |number| puts number }
|
7
|
-
|
8
|
-
# No space before or after {
|
9
|
-
1..10.times{|number| puts number }
|
10
|
-
|
11
|
-
# No space before }
|
12
|
-
1..10.times { |number| puts number}
|
13
|
-
|
14
|
-
# No space before or after { and }
|
15
|
-
1..10.times{|number| puts number}
|
16
|
-
|
17
|
-
# >1 space before {
|
18
|
-
1..10.times { |number| puts number }
|
19
|
-
|
20
|
-
# >1 space after {
|
21
|
-
1..10.times { |number| puts number }
|
22
|
-
|
23
|
-
# >1 space before, no spaces after {
|
24
|
-
1..10.times {|number| puts number }
|
25
|
-
|
26
|
-
# >1 space after, no spaces before {
|
27
|
-
1..10.times{ |number| puts number }
|
28
|
-
|
29
|
-
# >1 space before }
|
30
|
-
1..10.times { |number| puts number }
|
31
|
-
|
32
|
-
# Perfect
|
33
|
-
1..10.times { |number| puts number }
|
34
|
-
|
35
|
-
|
36
|
-
# Hashes...
|
37
|
-
# No space after {
|
38
|
-
thing = {:one => 1 }
|
39
|
-
|
40
|
-
# No space before {
|
41
|
-
thing ={ :one => 1 }
|
42
|
-
|
43
|
-
# No space before or after {
|
44
|
-
thing ={:one => 1 }
|
45
|
-
|
46
|
-
# No space before }
|
47
|
-
thing = { :one => 1}
|
48
|
-
|
49
|
-
# No space before or after { and }
|
50
|
-
thing ={:one => 1}
|
51
|
-
|
52
|
-
# Perfect
|
53
|
-
thing = { :one => 1 }
|
54
|
-
|
55
|
-
# Skip on default params in methods...
|
56
|
-
def a_method; one={}; end
|
57
|
-
|
58
|
-
# Skip on strings...
|
59
|
-
a_string = "This is a #{thing}..."
|
60
|
-
b_string = "This has #{Class.methods}"
|