scss-lint 0.25.1 → 0.26.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/config/default.yml +10 -1
  3. data/data/property-sort-orders/concentric.txt +99 -0
  4. data/lib/scss_lint.rb +1 -0
  5. data/lib/scss_lint/cli.rb +9 -3
  6. data/lib/scss_lint/exceptions.rb +4 -0
  7. data/lib/scss_lint/linter.rb +10 -1
  8. data/lib/scss_lint/linter/capitalization_in_selector.rb +14 -6
  9. data/lib/scss_lint/linter/compass/property_with_mixin.rb +9 -2
  10. data/lib/scss_lint/linter/indentation.rb +28 -6
  11. data/lib/scss_lint/linter/property_sort_order.rb +61 -9
  12. data/lib/scss_lint/linter/single_line_per_property.rb +53 -0
  13. data/lib/scss_lint/linter/single_line_per_selector.rb +6 -1
  14. data/lib/scss_lint/linter/space_after_comma.rb +27 -19
  15. data/lib/scss_lint/linter/space_before_brace.rb +5 -4
  16. data/lib/scss_lint/linter/trailing_semicolon.rb +53 -0
  17. data/lib/scss_lint/linter/unnecessary_parent_reference.rb +36 -0
  18. data/lib/scss_lint/reporter/default_reporter.rb +7 -2
  19. data/lib/scss_lint/reporter/xml_reporter.rb +2 -1
  20. data/lib/scss_lint/runner.rb +7 -3
  21. data/lib/scss_lint/version.rb +1 -1
  22. data/spec/scss_lint/cli_spec.rb +314 -0
  23. data/spec/scss_lint/config_spec.rb +439 -0
  24. data/spec/scss_lint/engine_spec.rb +24 -0
  25. data/spec/scss_lint/linter/border_zero_spec.rb +84 -0
  26. data/spec/scss_lint/linter/capitalization_in_selector_spec.rb +71 -0
  27. data/spec/scss_lint/linter/color_keyword_spec.rb +83 -0
  28. data/spec/scss_lint/linter/comment_spec.rb +55 -0
  29. data/spec/scss_lint/linter/compass/property_with_mixin_spec.rb +55 -0
  30. data/spec/scss_lint/linter/debug_statement_spec.rb +21 -0
  31. data/spec/scss_lint/linter/declaration_order_spec.rb +94 -0
  32. data/spec/scss_lint/linter/duplicate_property_spec.rb +176 -0
  33. data/spec/scss_lint/linter/else_placement_spec.rb +106 -0
  34. data/spec/scss_lint/linter/empty_line_between_blocks_spec.rb +263 -0
  35. data/spec/scss_lint/linter/empty_rule_spec.rb +27 -0
  36. data/spec/scss_lint/linter/final_newline_spec.rb +49 -0
  37. data/spec/scss_lint/linter/hex_length_spec.rb +104 -0
  38. data/spec/scss_lint/linter/hex_notation_spec.rb +104 -0
  39. data/spec/scss_lint/linter/hex_validation_spec.rb +36 -0
  40. data/spec/scss_lint/linter/id_with_extraneous_selector_spec.rb +139 -0
  41. data/spec/scss_lint/linter/indentation_spec.rb +242 -0
  42. data/spec/scss_lint/linter/leading_zero_spec.rb +233 -0
  43. data/spec/scss_lint/linter/mergeable_selector_spec.rb +283 -0
  44. data/spec/scss_lint/linter/name_format_spec.rb +206 -0
  45. data/spec/scss_lint/linter/placeholder_in_extend_spec.rb +63 -0
  46. data/spec/scss_lint/linter/property_sort_order_spec.rb +246 -0
  47. data/spec/scss_lint/linter/property_spelling_spec.rb +57 -0
  48. data/spec/scss_lint/linter/selector_depth_spec.rb +159 -0
  49. data/spec/scss_lint/linter/shorthand_spec.rb +172 -0
  50. data/spec/scss_lint/linter/single_line_per_property_spec.rb +73 -0
  51. data/spec/scss_lint/linter/single_line_per_selector_spec.rb +121 -0
  52. data/spec/scss_lint/linter/space_after_comma_spec.rb +315 -0
  53. data/spec/scss_lint/linter/space_after_property_colon_spec.rb +238 -0
  54. data/spec/scss_lint/linter/space_after_property_name_spec.rb +23 -0
  55. data/spec/scss_lint/linter/space_before_brace_spec.rb +447 -0
  56. data/spec/scss_lint/linter/space_between_parens_spec.rb +263 -0
  57. data/spec/scss_lint/linter/string_quotes_spec.rb +303 -0
  58. data/spec/scss_lint/linter/trailing_semicolon_spec.rb +188 -0
  59. data/spec/scss_lint/linter/unnecessary_mantissa_spec.rb +67 -0
  60. data/spec/scss_lint/linter/unnecessary_parent_reference_spec.rb +67 -0
  61. data/spec/scss_lint/linter/url_format_spec.rb +55 -0
  62. data/spec/scss_lint/linter/url_quotes_spec.rb +63 -0
  63. data/spec/scss_lint/linter/zero_unit_spec.rb +113 -0
  64. data/spec/scss_lint/linter_registry_spec.rb +50 -0
  65. data/spec/scss_lint/location_spec.rb +42 -0
  66. data/spec/scss_lint/reporter/config_reporter_spec.rb +42 -0
  67. data/spec/scss_lint/reporter/default_reporter_spec.rb +73 -0
  68. data/spec/scss_lint/reporter/files_reporter_spec.rb +38 -0
  69. data/spec/scss_lint/reporter/xml_reporter_spec.rb +103 -0
  70. data/spec/scss_lint/reporter_spec.rb +11 -0
  71. data/spec/scss_lint/runner_spec.rb +132 -0
  72. data/spec/scss_lint/selector_visitor_spec.rb +264 -0
  73. data/spec/spec_helper.rb +34 -0
  74. data/spec/support/isolated_environment.rb +25 -0
  75. data/spec/support/matchers/report_lint.rb +48 -0
  76. metadata +126 -8
  77. data/lib/scss_lint/linter/trailing_semicolon_after_property_value.rb +0 -40
@@ -0,0 +1,264 @@
1
+ require 'spec_helper'
2
+
3
+ describe SCSSLint::SelectorVisitor do
4
+ describe '#visit' do
5
+ let(:engine) { SCSSLint::Engine.new(css) }
6
+ before { RuleVisitor.new(visitor).run(engine) }
7
+
8
+ # Visits every rule in the given parse tree and passes the parsed selector
9
+ # to the given `selector_visitor`.
10
+ class RuleVisitor < Sass::Tree::Visitors::Base
11
+ def initialize(selector_visitor)
12
+ @selector_visitor = selector_visitor
13
+ end
14
+
15
+ def run(engine)
16
+ visit(engine.tree)
17
+ end
18
+
19
+ def visit_rule(node)
20
+ @selector_visitor.visit_selector(node.parsed_rules)
21
+ yield # Continue linting children
22
+ end
23
+ end
24
+
25
+ # Superclass for all the test selector visitors
26
+ class TrackingSelectorVisitor
27
+ include SCSSLint::SelectorVisitor
28
+
29
+ attr_reader :node_order
30
+
31
+ def initialize
32
+ @node_order = []
33
+ end
34
+ end
35
+
36
+ context 'when visitor defines visit_attribute' do
37
+ class TestAttributeVisitor < TrackingSelectorVisitor
38
+ def visit_attribute(attribute)
39
+ @node_order << attribute.name.join
40
+ end
41
+ end
42
+
43
+ let(:visitor) { TestAttributeVisitor.new }
44
+
45
+ let(:css) { <<-CSS }
46
+ [rel="nofollow"] {}
47
+ a[href="http"] {}
48
+ .class [data-count] {}
49
+ CSS
50
+
51
+ it 'visits all attribute nodes' do
52
+ visitor.node_order.should == %w[rel href data-count]
53
+ end
54
+ end
55
+
56
+ context 'when visitor defines visit_class' do
57
+ class TestClassVisitor < TrackingSelectorVisitor
58
+ def visit_class(klass)
59
+ @node_order << klass.name.join
60
+ end
61
+ end
62
+
63
+ let(:visitor) { TestClassVisitor.new }
64
+
65
+ let(:css) { <<-CSS }
66
+ a.link {}
67
+ .menu .menu-item {}
68
+ .button[data-source], .overlay {}
69
+ CSS
70
+
71
+ it 'visits all class nodes' do
72
+ visitor.node_order.should == %w[link menu menu-item button overlay]
73
+ end
74
+ end
75
+
76
+ context 'when visitor defines visit_element' do
77
+ class TestElementVisitor < TrackingSelectorVisitor
78
+ def visit_element(element)
79
+ @node_order << element.name.join
80
+ end
81
+ end
82
+
83
+ let(:visitor) { TestElementVisitor.new }
84
+
85
+ let(:css) { <<-CSS }
86
+ a, b {}
87
+ .class {}
88
+ i + p {}
89
+ CSS
90
+
91
+ it 'visits all element nodes' do
92
+ visitor.node_order.should == %w[a b i p]
93
+ end
94
+ end
95
+
96
+ context 'when visitor defines visit_id' do
97
+ class TestIdVisitor < TrackingSelectorVisitor
98
+ def visit_id(id)
99
+ @node_order << id.name.join
100
+ end
101
+ end
102
+
103
+ let(:visitor) { TestIdVisitor.new }
104
+
105
+ let(:css) { <<-CSS }
106
+ #something, #thing {}
107
+ #object + #entity {}
108
+ CSS
109
+
110
+ it 'visits all id nodes' do
111
+ visitor.node_order.should == %w[something thing object entity]
112
+ end
113
+ end
114
+
115
+ context 'when visitor defines visit_parent' do
116
+ class TestParentVisitor < TrackingSelectorVisitor
117
+ def visit_parent(parent)
118
+ @node_order << parent.line
119
+ end
120
+ end
121
+
122
+ let(:visitor) { TestParentVisitor.new }
123
+
124
+ let(:css) { <<-CSS }
125
+ p {
126
+ &.class {}
127
+ .container & {}
128
+ .nothing {}
129
+ }
130
+ CSS
131
+
132
+ it 'visits all parent nodes' do
133
+ visitor.node_order.should == [2, 3]
134
+ end
135
+ end
136
+
137
+ context 'when visitor defines visit_placeholder' do
138
+ class TestPlaceholderVisitor < TrackingSelectorVisitor
139
+ def visit_placeholder(placeholder)
140
+ @node_order << placeholder.name.join
141
+ end
142
+ end
143
+
144
+ let(:visitor) { TestPlaceholderVisitor.new }
145
+
146
+ let(:css) { <<-CSS }
147
+ %placeholder, %other-placeholder {}
148
+ .button, %button {}
149
+ CSS
150
+
151
+ it 'visits all placeholder nodes' do
152
+ visitor.node_order.should == %w[placeholder other-placeholder button]
153
+ end
154
+ end
155
+
156
+ context 'when visitor defines visit_pseudo' do
157
+ class TestPseudoVisitor < TrackingSelectorVisitor
158
+ def visit_pseudo(pseudo)
159
+ @node_order << pseudo.name.join
160
+ end
161
+ end
162
+
163
+ let(:visitor) { TestPseudoVisitor.new }
164
+
165
+ let(:css) { <<-CSS }
166
+ li:first-child, li:last-child {}
167
+ p {
168
+ &:first-letter {}
169
+ }
170
+ CSS
171
+
172
+ it 'visits all pseudo-selector nodes' do
173
+ visitor.node_order.should == %w[first-child last-child first-letter]
174
+ end
175
+ end
176
+
177
+ context 'when visitor defines visit_universal' do
178
+ class TestUniversalVisitor < TrackingSelectorVisitor
179
+ def visit_universal(universal)
180
+ @node_order << universal.line
181
+ end
182
+ end
183
+
184
+ let(:visitor) { TestUniversalVisitor.new }
185
+
186
+ let(:css) { <<-CSS }
187
+ p > * {}
188
+ * {}
189
+ li {}
190
+ *:first-child {}
191
+ CSS
192
+
193
+ it 'visits all universal-selector nodes' do
194
+ visitor.node_order.should == [1, 2, 4]
195
+ end
196
+ end
197
+
198
+ context 'when visitor defines visit_simple_sequence' do
199
+ class TestSimpleSequenceVisitor < TrackingSelectorVisitor
200
+ def visit_simple_sequence(seq)
201
+ @node_order << seq
202
+ end
203
+ end
204
+
205
+ let(:visitor) { TestSimpleSequenceVisitor.new }
206
+
207
+ let(:css) { <<-CSS }
208
+ a, b, p[lang] {}
209
+ a.link + b.word {}
210
+ li {}
211
+ ul > li {}
212
+ p span {}
213
+ CSS
214
+
215
+ it 'visits all simple sequences' do
216
+ visitor.node_order.count.should == 10
217
+ end
218
+ end
219
+
220
+ context 'when visitor defines visit_sequence' do
221
+ class TestSequenceVisitor < TrackingSelectorVisitor
222
+ def visit_sequence(seq)
223
+ @node_order << seq
224
+ end
225
+ end
226
+
227
+ let(:visitor) { TestSequenceVisitor.new }
228
+
229
+ let(:css) { <<-CSS }
230
+ a, b, p[lang] {}
231
+ a.link + b.word {}
232
+ li {}
233
+ ul > li {}
234
+ p span {}
235
+ CSS
236
+
237
+ it 'visits all sequences' do
238
+ visitor.node_order.count.should == 7
239
+ end
240
+ end
241
+
242
+ context 'when visitor defines visit_comma_sequence' do
243
+ class TestCommaSequenceVisitor < TrackingSelectorVisitor
244
+ def visit_comma_sequence(seq)
245
+ @node_order << seq
246
+ end
247
+ end
248
+
249
+ let(:visitor) { TestCommaSequenceVisitor.new }
250
+
251
+ let(:css) { <<-CSS }
252
+ a, b, p[lang] {}
253
+ a.link + b.word {}
254
+ li {}
255
+ ul > li {}
256
+ p span {}
257
+ CSS
258
+
259
+ it 'visits all comma (i.e. selector) sequences' do
260
+ visitor.node_order.count.should == 5
261
+ end
262
+ end
263
+ end
264
+ end
@@ -0,0 +1,34 @@
1
+ require 'scss_lint'
2
+ require 'nokogiri'
3
+
4
+ Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each { |f| require f }
5
+
6
+ RSpec.configure do |config|
7
+ config.expect_with :rspec do |c|
8
+ c.syntax = [:expect, :should]
9
+ end
10
+
11
+ config.mock_with :rspec do |c|
12
+ c.syntax = :should
13
+ end
14
+
15
+ config.before(:each) do
16
+ # If running a linter spec, run the described linter against the CSS code
17
+ # for each example. This significantly DRYs up our linter specs to contain
18
+ # only tests, since all the setup code is now centralized here.
19
+ if described_class < SCSSLint::Linter
20
+ initial_indent = css[/\A(\s*)/, 1]
21
+ normalized_css = css.gsub(/^#{initial_indent}/, '')
22
+
23
+ # Use the configuration settings defined by default unless a specific
24
+ # configuration has been provided for the test.
25
+ local_config = if respond_to?(:linter_config)
26
+ linter_config
27
+ else
28
+ SCSSLint::Config.default.linter_options(subject)
29
+ end
30
+
31
+ subject.run(SCSSLint::Engine.new(normalized_css), local_config)
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,25 @@
1
+ require 'fileutils'
2
+ require 'tmpdir'
3
+
4
+ shared_context 'isolated environment' do
5
+ around do |example|
6
+ Dir.mktmpdir do |tmpdir|
7
+ original_home = ENV['HOME']
8
+
9
+ begin
10
+ virtual_home = File.expand_path(File.join(tmpdir, 'home'))
11
+ Dir.mkdir(virtual_home)
12
+ ENV['HOME'] = virtual_home
13
+
14
+ working_dir = File.join(tmpdir, 'work')
15
+ Dir.mkdir(working_dir)
16
+
17
+ Dir.chdir(working_dir) do
18
+ example.run
19
+ end
20
+ ensure
21
+ ENV['HOME'] = original_home
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,48 @@
1
+ RSpec::Matchers.define :report_lint do |options|
2
+ options ||= {}
3
+ count = options[:count]
4
+ expected_line = options[:line]
5
+
6
+ match do |linter|
7
+ has_lints?(linter, expected_line, count)
8
+ end
9
+
10
+ failure_message do |linter|
11
+ 'expected that a lint would be reported' +
12
+ (expected_line ? " on line #{expected_line}" : '') +
13
+ case linter.lints.count
14
+ when 0
15
+ ''
16
+ when 1
17
+ ", but was on line #{linter.lints.first.location.line}"
18
+ else
19
+ lines = lint_lines(linter)
20
+ ", but lints were reported on lines #{lines[0...-1].join(', ')} and #{lines.last}"
21
+ end
22
+ end
23
+
24
+ failure_message_when_negated do
25
+ 'expected that a lint would not be reported'
26
+ end
27
+
28
+ description do
29
+ 'report a lint' + (expected_line ? " on line #{expected_line}" : '')
30
+ end
31
+
32
+ def has_lints?(linter, expected_line, count)
33
+ if expected_line && count
34
+ linter.lints.count == count &&
35
+ lint_lines(linter).all? { |line| line == expected_line }
36
+ elsif expected_line
37
+ lint_lines(linter).include?(expected_line)
38
+ elsif count
39
+ linter.lints.count == count
40
+ else
41
+ linter.lints.count > 0
42
+ end
43
+ end
44
+
45
+ def lint_lines(linter)
46
+ linter.lints.map { |lint| lint.location.line }
47
+ end
48
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scss-lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.25.1
4
+ version: 0.26.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Causes Engineering
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-24 00:00:00.000000000 Z
12
+ date: 2014-07-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rainbow
@@ -32,6 +32,9 @@ dependencies:
32
32
  - - ~>
33
33
  - !ruby/object:Gem::Version
34
34
  version: 3.3.0
35
+ - - '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 3.3.7
35
38
  type: :runtime
36
39
  prerelease: false
37
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -39,6 +42,9 @@ dependencies:
39
42
  - - ~>
40
43
  - !ruby/object:Gem::Version
41
44
  version: 3.3.0
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 3.3.7
42
48
  - !ruby/object:Gem::Dependency
43
49
  name: nokogiri
44
50
  requirement: !ruby/object:Gem::Requirement
@@ -59,28 +65,28 @@ dependencies:
59
65
  requirements:
60
66
  - - ~>
61
67
  - !ruby/object:Gem::Version
62
- version: '2.0'
68
+ version: '3.0'
63
69
  type: :development
64
70
  prerelease: false
65
71
  version_requirements: !ruby/object:Gem::Requirement
66
72
  requirements:
67
73
  - - ~>
68
74
  - !ruby/object:Gem::Version
69
- version: '2.0'
75
+ version: '3.0'
70
76
  - !ruby/object:Gem::Dependency
71
77
  name: rubocop
72
78
  requirement: !ruby/object:Gem::Requirement
73
79
  requirements:
74
80
  - - '='
75
81
  - !ruby/object:Gem::Version
76
- version: 0.23.0
82
+ version: 0.24.1
77
83
  type: :development
78
84
  prerelease: false
79
85
  version_requirements: !ruby/object:Gem::Requirement
80
86
  requirements:
81
87
  - - '='
82
88
  - !ruby/object:Gem::Version
83
- version: 0.23.0
89
+ version: 0.24.1
84
90
  description: Configurable tool for writing clean and consistent SCSS
85
91
  email:
86
92
  - eng@causes.com
@@ -92,6 +98,7 @@ extra_rdoc_files: []
92
98
  files:
93
99
  - config/default.yml
94
100
  - data/properties.txt
101
+ - data/property-sort-orders/concentric.txt
95
102
  - lib/scss_lint/version.rb
96
103
  - lib/scss_lint/constants.rb
97
104
  - lib/scss_lint/utils.rb
@@ -108,6 +115,7 @@ files:
108
115
  - lib/scss_lint/selector_visitor.rb
109
116
  - lib/scss_lint/sass/tree.rb
110
117
  - lib/scss_lint/sass/script.rb
118
+ - lib/scss_lint/exceptions.rb
111
119
  - lib/scss_lint/config.rb
112
120
  - lib/scss_lint/linter/compass.rb
113
121
  - lib/scss_lint/linter/space_after_comma.rb
@@ -116,7 +124,7 @@ files:
116
124
  - lib/scss_lint/linter/hex_length.rb
117
125
  - lib/scss_lint/linter/indentation.rb
118
126
  - lib/scss_lint/linter/mergeable_selector.rb
119
- - lib/scss_lint/linter/trailing_semicolon_after_property_value.rb
127
+ - lib/scss_lint/linter/single_line_per_property.rb
120
128
  - lib/scss_lint/linter/shorthand.rb
121
129
  - lib/scss_lint/linter/final_newline.rb
122
130
  - lib/scss_lint/linter/id_with_extraneous_selector.rb
@@ -132,10 +140,12 @@ files:
132
140
  - lib/scss_lint/linter/property_spelling.rb
133
141
  - lib/scss_lint/linter/url_quotes.rb
134
142
  - lib/scss_lint/linter/name_format.rb
143
+ - lib/scss_lint/linter/unnecessary_parent_reference.rb
135
144
  - lib/scss_lint/linter/space_between_parens.rb
136
145
  - lib/scss_lint/linter/border_zero.rb
137
146
  - lib/scss_lint/linter/space_after_property_colon.rb
138
147
  - lib/scss_lint/linter/debug_statement.rb
148
+ - lib/scss_lint/linter/trailing_semicolon.rb
139
149
  - lib/scss_lint/linter/duplicate_property.rb
140
150
  - lib/scss_lint/linter/property_sort_order.rb
141
151
  - lib/scss_lint/linter/color_keyword.rb
@@ -151,6 +161,60 @@ files:
151
161
  - lib/scss_lint/engine.rb
152
162
  - lib/scss_lint/linter_registry.rb
153
163
  - lib/scss_lint.rb
164
+ - spec/scss_lint/location_spec.rb
165
+ - spec/scss_lint/reporter/files_reporter_spec.rb
166
+ - spec/scss_lint/reporter/xml_reporter_spec.rb
167
+ - spec/scss_lint/reporter/config_reporter_spec.rb
168
+ - spec/scss_lint/reporter/default_reporter_spec.rb
169
+ - spec/scss_lint/selector_visitor_spec.rb
170
+ - spec/scss_lint/runner_spec.rb
171
+ - spec/scss_lint/engine_spec.rb
172
+ - spec/scss_lint/reporter_spec.rb
173
+ - spec/scss_lint/config_spec.rb
174
+ - spec/scss_lint/linter_registry_spec.rb
175
+ - spec/scss_lint/cli_spec.rb
176
+ - spec/scss_lint/linter/final_newline_spec.rb
177
+ - spec/scss_lint/linter/color_keyword_spec.rb
178
+ - spec/scss_lint/linter/single_line_per_selector_spec.rb
179
+ - spec/scss_lint/linter/empty_rule_spec.rb
180
+ - spec/scss_lint/linter/hex_notation_spec.rb
181
+ - spec/scss_lint/linter/hex_length_spec.rb
182
+ - spec/scss_lint/linter/url_quotes_spec.rb
183
+ - spec/scss_lint/linter/space_between_parens_spec.rb
184
+ - spec/scss_lint/linter/border_zero_spec.rb
185
+ - spec/scss_lint/linter/property_spelling_spec.rb
186
+ - spec/scss_lint/linter/property_sort_order_spec.rb
187
+ - spec/scss_lint/linter/else_placement_spec.rb
188
+ - spec/scss_lint/linter/zero_unit_spec.rb
189
+ - spec/scss_lint/linter/mergeable_selector_spec.rb
190
+ - spec/scss_lint/linter/unnecessary_mantissa_spec.rb
191
+ - spec/scss_lint/linter/name_format_spec.rb
192
+ - spec/scss_lint/linter/capitalization_in_selector_spec.rb
193
+ - spec/scss_lint/linter/duplicate_property_spec.rb
194
+ - spec/scss_lint/linter/hex_validation_spec.rb
195
+ - spec/scss_lint/linter/space_before_brace_spec.rb
196
+ - spec/scss_lint/linter/compass/property_with_mixin_spec.rb
197
+ - spec/scss_lint/linter/placeholder_in_extend_spec.rb
198
+ - spec/scss_lint/linter/debug_statement_spec.rb
199
+ - spec/scss_lint/linter/string_quotes_spec.rb
200
+ - spec/scss_lint/linter/indentation_spec.rb
201
+ - spec/scss_lint/linter/unnecessary_parent_reference_spec.rb
202
+ - spec/scss_lint/linter/empty_line_between_blocks_spec.rb
203
+ - spec/scss_lint/linter/single_line_per_property_spec.rb
204
+ - spec/scss_lint/linter/space_after_property_colon_spec.rb
205
+ - spec/scss_lint/linter/declaration_order_spec.rb
206
+ - spec/scss_lint/linter/leading_zero_spec.rb
207
+ - spec/scss_lint/linter/url_format_spec.rb
208
+ - spec/scss_lint/linter/comment_spec.rb
209
+ - spec/scss_lint/linter/trailing_semicolon_spec.rb
210
+ - spec/scss_lint/linter/selector_depth_spec.rb
211
+ - spec/scss_lint/linter/space_after_comma_spec.rb
212
+ - spec/scss_lint/linter/shorthand_spec.rb
213
+ - spec/scss_lint/linter/id_with_extraneous_selector_spec.rb
214
+ - spec/scss_lint/linter/space_after_property_name_spec.rb
215
+ - spec/support/matchers/report_lint.rb
216
+ - spec/support/isolated_environment.rb
217
+ - spec/spec_helper.rb
154
218
  - bin/scss-lint
155
219
  homepage: https://github.com/causes/scss-lint
156
220
  licenses:
@@ -176,4 +240,58 @@ rubygems_version: 2.0.14
176
240
  signing_key:
177
241
  specification_version: 4
178
242
  summary: SCSS lint tool
179
- test_files: []
243
+ test_files:
244
+ - spec/scss_lint/location_spec.rb
245
+ - spec/scss_lint/reporter/files_reporter_spec.rb
246
+ - spec/scss_lint/reporter/xml_reporter_spec.rb
247
+ - spec/scss_lint/reporter/config_reporter_spec.rb
248
+ - spec/scss_lint/reporter/default_reporter_spec.rb
249
+ - spec/scss_lint/selector_visitor_spec.rb
250
+ - spec/scss_lint/runner_spec.rb
251
+ - spec/scss_lint/engine_spec.rb
252
+ - spec/scss_lint/reporter_spec.rb
253
+ - spec/scss_lint/config_spec.rb
254
+ - spec/scss_lint/linter_registry_spec.rb
255
+ - spec/scss_lint/cli_spec.rb
256
+ - spec/scss_lint/linter/final_newline_spec.rb
257
+ - spec/scss_lint/linter/color_keyword_spec.rb
258
+ - spec/scss_lint/linter/single_line_per_selector_spec.rb
259
+ - spec/scss_lint/linter/empty_rule_spec.rb
260
+ - spec/scss_lint/linter/hex_notation_spec.rb
261
+ - spec/scss_lint/linter/hex_length_spec.rb
262
+ - spec/scss_lint/linter/url_quotes_spec.rb
263
+ - spec/scss_lint/linter/space_between_parens_spec.rb
264
+ - spec/scss_lint/linter/border_zero_spec.rb
265
+ - spec/scss_lint/linter/property_spelling_spec.rb
266
+ - spec/scss_lint/linter/property_sort_order_spec.rb
267
+ - spec/scss_lint/linter/else_placement_spec.rb
268
+ - spec/scss_lint/linter/zero_unit_spec.rb
269
+ - spec/scss_lint/linter/mergeable_selector_spec.rb
270
+ - spec/scss_lint/linter/unnecessary_mantissa_spec.rb
271
+ - spec/scss_lint/linter/name_format_spec.rb
272
+ - spec/scss_lint/linter/capitalization_in_selector_spec.rb
273
+ - spec/scss_lint/linter/duplicate_property_spec.rb
274
+ - spec/scss_lint/linter/hex_validation_spec.rb
275
+ - spec/scss_lint/linter/space_before_brace_spec.rb
276
+ - spec/scss_lint/linter/compass/property_with_mixin_spec.rb
277
+ - spec/scss_lint/linter/placeholder_in_extend_spec.rb
278
+ - spec/scss_lint/linter/debug_statement_spec.rb
279
+ - spec/scss_lint/linter/string_quotes_spec.rb
280
+ - spec/scss_lint/linter/indentation_spec.rb
281
+ - spec/scss_lint/linter/unnecessary_parent_reference_spec.rb
282
+ - spec/scss_lint/linter/empty_line_between_blocks_spec.rb
283
+ - spec/scss_lint/linter/single_line_per_property_spec.rb
284
+ - spec/scss_lint/linter/space_after_property_colon_spec.rb
285
+ - spec/scss_lint/linter/declaration_order_spec.rb
286
+ - spec/scss_lint/linter/leading_zero_spec.rb
287
+ - spec/scss_lint/linter/url_format_spec.rb
288
+ - spec/scss_lint/linter/comment_spec.rb
289
+ - spec/scss_lint/linter/trailing_semicolon_spec.rb
290
+ - spec/scss_lint/linter/selector_depth_spec.rb
291
+ - spec/scss_lint/linter/space_after_comma_spec.rb
292
+ - spec/scss_lint/linter/shorthand_spec.rb
293
+ - spec/scss_lint/linter/id_with_extraneous_selector_spec.rb
294
+ - spec/scss_lint/linter/space_after_property_name_spec.rb
295
+ - spec/support/matchers/report_lint.rb
296
+ - spec/support/isolated_environment.rb
297
+ - spec/spec_helper.rb