scss-lint 0.23.0 → 0.23.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.
- checksums.yaml +4 -4
- data/lib/scss_lint/cli.rb +3 -3
- data/lib/scss_lint/linter.rb +1 -1
- data/lib/scss_lint/linter/duplicate_root.rb +1 -0
- data/lib/scss_lint/linter/id_with_extraneous_selector.rb +1 -1
- data/lib/scss_lint/linter/single_line_per_selector.rb +1 -2
- data/lib/scss_lint/linter/space_between_parens.rb +2 -2
- data/lib/scss_lint/reporter/xml_reporter.rb +2 -2
- data/lib/scss_lint/sass/tree.rb +1 -1
- data/lib/scss_lint/selector_visitor.rb +4 -4
- data/lib/scss_lint/utils.rb +3 -3
- data/lib/scss_lint/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d1a01eec7c1dd954e81749c6a668a660013b228
|
4
|
+
data.tar.gz: 05988d04580327776387a94171c4297f6a7493d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f82ac7a86ac50b2f172f0bb08879ec3fef8fc20f6fbdbf35816ea6cab6feae0963062da65ae550a86bf7106d3e44e755c3d510baf81a2ed43f779b3248d0ba2e
|
7
|
+
data.tar.gz: a47bd582bb1208992367eb5f7f3f61fde36a9d308f8be3745532333a08c70d0e04f90a14adb00e71e409ee3ea6547b46bb1d9d27909e345fe332f3082fe67474
|
data/lib/scss_lint/cli.rb
CHANGED
@@ -45,7 +45,7 @@ module SCSSLint
|
|
45
45
|
end
|
46
46
|
|
47
47
|
# @return [OptionParser]
|
48
|
-
def options_parser
|
48
|
+
def options_parser # rubocop:disable MethodLength
|
49
49
|
@options_parser ||= OptionParser.new do |opts|
|
50
50
|
opts.banner = "Usage: #{opts.program_name} [options] [scss-files]"
|
51
51
|
|
@@ -62,7 +62,7 @@ module SCSSLint
|
|
62
62
|
end
|
63
63
|
|
64
64
|
opts.on('-f', '--format Formatter', 'Specify how to display lints', String) do |format|
|
65
|
-
|
65
|
+
define_output_format(format)
|
66
66
|
end
|
67
67
|
|
68
68
|
opts.on('-i', '--include-linter linter,...', Array,
|
@@ -189,7 +189,7 @@ module SCSSLint
|
|
189
189
|
end
|
190
190
|
|
191
191
|
# @param format [String]
|
192
|
-
def
|
192
|
+
def define_output_format(format)
|
193
193
|
@options[:reporter] = SCSSLint::Reporter.const_get(format + 'Reporter')
|
194
194
|
rescue NameError
|
195
195
|
puts "Invalid output format specified: #{format}"
|
data/lib/scss_lint/linter.rb
CHANGED
@@ -44,7 +44,7 @@ module SCSSLint
|
|
44
44
|
length = if range.start_pos.line == range.end_pos.line
|
45
45
|
range.end_pos.offset - range.start_pos.offset
|
46
46
|
else
|
47
|
-
line_source = engine.lines[range.start_pos.line]
|
47
|
+
line_source = engine.lines[range.start_pos.line - 1]
|
48
48
|
line_source.length - range.start_pos.offset + 1
|
49
49
|
end
|
50
50
|
|
@@ -15,7 +15,7 @@ module SCSSLint
|
|
15
15
|
if can_be_simplified
|
16
16
|
# TODO: Sass::Selector::SimpleSequence#source_range sometimes lies about
|
17
17
|
# its line, so reference `#line` directly
|
18
|
-
add_lint(seq.line, "Selector `#{seq}` can be simplified to `#{id_sel}`, "
|
18
|
+
add_lint(seq.line, "Selector `#{seq}` can be simplified to `#{id_sel}`, " \
|
19
19
|
'since IDs should be uniquely identifying')
|
20
20
|
end
|
21
21
|
end
|
@@ -21,8 +21,7 @@ module SCSSLint
|
|
21
21
|
# Sass::Script::Nodes, we need to condense it into a single string that we
|
22
22
|
# can run a regex against.
|
23
23
|
def condense_to_string(sequence_list)
|
24
|
-
sequence_list.select { |item| item.is_a?(String) }
|
25
|
-
.inject('') { |combined, item| combined + item }
|
24
|
+
sequence_list.select { |item| item.is_a?(String) }.inject(:+)
|
26
25
|
end
|
27
26
|
|
28
27
|
# Removes extra spacing between lines in a comma-separated sequence due to
|
@@ -27,8 +27,8 @@ module SCSSLint
|
|
27
27
|
|
28
28
|
if spaces != @spaces
|
29
29
|
location = Location.new(index + 1)
|
30
|
-
message = "Expected #{pluralize(@spaces, 'space')}"
|
31
|
-
"
|
30
|
+
message = "Expected #{pluralize(@spaces, 'space')} " \
|
31
|
+
"between parentheses instead of #{spaces}"
|
32
32
|
@lints << Lint.new(engine.filename, location, message)
|
33
33
|
end
|
34
34
|
end
|
@@ -6,14 +6,14 @@ module SCSSLint
|
|
6
6
|
|
7
7
|
output << '<lint>'
|
8
8
|
lints.group_by(&:filename).each do |filename, file_lints|
|
9
|
-
output << "<file name=#{filename.encode(:
|
9
|
+
output << "<file name=#{filename.encode(xml: :attr)}>"
|
10
10
|
|
11
11
|
file_lints.each do |lint|
|
12
12
|
output << "<issue line=\"#{lint.location.line}\" " <<
|
13
13
|
"column=\"#{lint.location.column}\" " <<
|
14
14
|
"length=\"#{lint.location.length}\" " <<
|
15
15
|
"severity=\"#{lint.severity}\" " <<
|
16
|
-
"reason=#{lint.description.encode(:
|
16
|
+
"reason=#{lint.description.encode(xml: :attr)} />"
|
17
17
|
end
|
18
18
|
|
19
19
|
output << '</file>'
|
data/lib/scss_lint/sass/tree.rb
CHANGED
@@ -67,7 +67,7 @@ module Sass::Tree
|
|
67
67
|
def children
|
68
68
|
begin
|
69
69
|
additional_children = extract_script_nodes(value)
|
70
|
-
rescue NotImplementedError
|
70
|
+
rescue NotImplementedError # rubocop:disable HandleExceptions
|
71
71
|
# Directive nodes may not define `value`
|
72
72
|
end
|
73
73
|
concat_expr_lists super, additional_children
|
@@ -23,10 +23,10 @@ module SCSSLint
|
|
23
23
|
def selector_node_name(node)
|
24
24
|
# Converts the class name of a node into snake_case form, e.g.
|
25
25
|
# `Sass::Selector::SimpleSequence` -> `simple_sequence`
|
26
|
-
node.class.name.gsub(/.*::(.*?)$/, '\\1')
|
27
|
-
gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
28
|
-
gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
29
|
-
downcase
|
26
|
+
node.class.name.gsub(/.*::(.*?)$/, '\\1')
|
27
|
+
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
28
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
29
|
+
.downcase
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
data/lib/scss_lint/utils.rb
CHANGED
@@ -15,9 +15,9 @@ module SCSSLint
|
|
15
15
|
# This is useful for lints that wish to ignore interpolation, since
|
16
16
|
# interpolation can't be resolved at this step.
|
17
17
|
def extract_string_selectors(selector_array)
|
18
|
-
selector_array.reject { |item| item.is_a? Sass::Script::Node }
|
19
|
-
|
20
|
-
|
18
|
+
selector_array.reject { |item| item.is_a? Sass::Script::Node }
|
19
|
+
.join
|
20
|
+
.split
|
21
21
|
end
|
22
22
|
|
23
23
|
def shortest_hex_form(hex)
|
data/lib/scss_lint/version.rb
CHANGED
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.23.
|
4
|
+
version: 0.23.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Causes Engineering
|
@@ -67,6 +67,20 @@ dependencies:
|
|
67
67
|
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '2.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rubocop
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
70
84
|
description: Configurable tool for writing clean and consistent SCSS
|
71
85
|
email:
|
72
86
|
- eng@causes.com
|