erb_lint 0.0.28 → 0.0.29
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 +5 -5
- data/exe/erblint +1 -1
- data/lib/erb_lint/cli.rb +6 -6
- data/lib/erb_lint/linter_config.rb +1 -1
- data/lib/erb_lint/linters/allowed_script_type.rb +1 -1
- data/lib/erb_lint/linters/deprecated_classes.rb +2 -2
- data/lib/erb_lint/linters/hard_coded_string.rb +2 -2
- data/lib/erb_lint/linters/rubocop.rb +2 -2
- data/lib/erb_lint/linters/self_closing_tag.rb +19 -5
- data/lib/erb_lint/runner_config_resolver.rb +1 -1
- data/lib/erb_lint/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e4a94b402b5b0e78c8597154a55807ab0cdab042b02aa105f8a84e7a800d1f78
|
4
|
+
data.tar.gz: 211323032036eee8cdc61c866d3d3049a80d8ddcf16c2e00795e8955dd8b112e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7721c096adf5dc25e919a1f233292d393bfb005c14bd90e4271a191313fefc5ee6c6e64d625c3f5bac39fccb5eeba42d6fd1cb64c99c069a03cf7c2a64d7fe1b
|
7
|
+
data.tar.gz: b7e7f1f7fbfab896f3ade2708cf873a19c05011b76be978df594326b47d999d27692a0afaeb9d296395a2dc09678ee4008fbf06abed8cad2c4901dad1a071152
|
data/exe/erblint
CHANGED
data/lib/erb_lint/cli.rb
CHANGED
@@ -67,27 +67,27 @@ module ERBLint
|
|
67
67
|
if @stats.corrected > 0
|
68
68
|
corrected_found_diff = @stats.found - @stats.corrected
|
69
69
|
if corrected_found_diff > 0
|
70
|
-
warn
|
70
|
+
warn(Rainbow(
|
71
71
|
"#{@stats.corrected} error(s) corrected and #{corrected_found_diff} error(s) remaining in ERB files"
|
72
|
-
).red
|
72
|
+
).red)
|
73
73
|
else
|
74
74
|
puts Rainbow("#{@stats.corrected} error(s) corrected in ERB files").green
|
75
75
|
end
|
76
76
|
elsif @stats.found > 0
|
77
|
-
warn
|
77
|
+
warn(Rainbow("#{@stats.found} error(s) were found in ERB files").red)
|
78
78
|
else
|
79
79
|
puts Rainbow("No errors were found in ERB files").green
|
80
80
|
end
|
81
81
|
|
82
82
|
@stats.found == 0
|
83
83
|
rescue OptionParser::InvalidOption, OptionParser::InvalidArgument, ExitWithFailure => e
|
84
|
-
warn
|
84
|
+
warn(Rainbow(e.message).red)
|
85
85
|
false
|
86
86
|
rescue ExitWithSuccess => e
|
87
87
|
puts e.message
|
88
88
|
true
|
89
89
|
rescue => e
|
90
|
-
warn
|
90
|
+
warn(Rainbow("#{e.class}: #{e.message}\n#{e.backtrace.join("\n")}").red)
|
91
91
|
false
|
92
92
|
end
|
93
93
|
|
@@ -146,7 +146,7 @@ module ERBLint
|
|
146
146
|
config = RunnerConfig.new(file_loader.yaml(config_filename), file_loader)
|
147
147
|
@config = RunnerConfig.default.merge(config)
|
148
148
|
else
|
149
|
-
warn
|
149
|
+
warn(Rainbow("#{config_filename} not found: using default config").yellow)
|
150
150
|
@config = RunnerConfig.default
|
151
151
|
end
|
152
152
|
@config.merge!(runner_config_override)
|
@@ -20,7 +20,7 @@ module ERBLint
|
|
20
20
|
end
|
21
21
|
|
22
22
|
property :enabled, accepts: [true, false], default: false, reader: :enabled?
|
23
|
-
property :exclude, accepts: array_of?(String), default: []
|
23
|
+
property :exclude, accepts: array_of?(String), default: -> { [] }
|
24
24
|
|
25
25
|
def initialize(config = {})
|
26
26
|
config = config.dup.deep_stringify_keys
|
@@ -13,7 +13,7 @@ module ERBLint
|
|
13
13
|
|
14
14
|
class ConfigSchema < LinterConfig
|
15
15
|
property :allowed_types, accepts: array_of?(String),
|
16
|
-
default: ['text/javascript']
|
16
|
+
default: -> { ['text/javascript'] }
|
17
17
|
property :allow_blank, accepts: [true, false], default: true, reader: :allow_blank?
|
18
18
|
property :disallow_inline_scripts, accepts: [true, false], default: false, reader: :disallow_inline_scripts?
|
19
19
|
end
|
@@ -12,12 +12,12 @@ module ERBLint
|
|
12
12
|
class RuleSet
|
13
13
|
include SmartProperties
|
14
14
|
property :suggestion, accepts: String, default: ''
|
15
|
-
property :deprecated, accepts: LinterConfig.array_of?(String), default: []
|
15
|
+
property :deprecated, accepts: LinterConfig.array_of?(String), default: -> { [] }
|
16
16
|
end
|
17
17
|
|
18
18
|
class ConfigSchema < LinterConfig
|
19
19
|
property :rule_set,
|
20
|
-
default: [],
|
20
|
+
default: -> { [] },
|
21
21
|
accepts: array_of?(RuleSet),
|
22
22
|
converts: to_array_of(RuleSet)
|
23
23
|
property :addendum, accepts: String
|
@@ -22,7 +22,7 @@ module ERBLint
|
|
22
22
|
BLACK_LISTED_TEXT = Set.new(%w(      ))
|
23
23
|
|
24
24
|
class ConfigSchema < LinterConfig
|
25
|
-
property :corrector, accepts: Hash, required: false, default: {}
|
25
|
+
property :corrector, accepts: Hash, required: false, default: -> { {} }
|
26
26
|
property :i18n_load_path, accepts: String, required: false, default: ''
|
27
27
|
end
|
28
28
|
self.config_schema = ConfigSchema
|
@@ -61,7 +61,7 @@ module ERBLint
|
|
61
61
|
|
62
62
|
def autocorrect(processed_source, offense)
|
63
63
|
string = offense.source_range.source
|
64
|
-
return unless klass = load_corrector
|
64
|
+
return unless (klass = load_corrector)
|
65
65
|
return unless string.strip.length > 1
|
66
66
|
node = RuboCop::AST::StrNode.new(:str, [string])
|
67
67
|
corrector = klass.new(node, processed_source.filename, corrector_i18n_load_path, offense.source_range)
|
@@ -13,7 +13,7 @@ module ERBLint
|
|
13
13
|
|
14
14
|
class ConfigSchema < LinterConfig
|
15
15
|
property :only, accepts: array_of?(String)
|
16
|
-
property :rubocop_config, accepts: Hash, default: {}
|
16
|
+
property :rubocop_config, accepts: Hash, default: -> { {} }
|
17
17
|
end
|
18
18
|
|
19
19
|
self.config_schema = ConfigSchema
|
@@ -147,7 +147,7 @@ module ERBLint
|
|
147
147
|
def base_configs(inherit_from)
|
148
148
|
regex = URI::DEFAULT_PARSER.make_regexp(%w(http https))
|
149
149
|
configs = Array(inherit_from).compact.map do |base_name|
|
150
|
-
if base_name
|
150
|
+
if base_name =~ /\A#{regex}\z/
|
151
151
|
RuboCop::ConfigLoader.load_file(RuboCop::RemoteConfig.new(base_name, Dir.pwd))
|
152
152
|
else
|
153
153
|
config_from_hash(@file_loader.yaml(base_name))
|
@@ -6,6 +6,11 @@ module ERBLint
|
|
6
6
|
class SelfClosingTag < Linter
|
7
7
|
include LinterRegistry
|
8
8
|
|
9
|
+
class ConfigSchema < LinterConfig
|
10
|
+
property :enforced_style, converts: :to_sym, accepts: [:always, :never], default: :never
|
11
|
+
end
|
12
|
+
self.config_schema = ConfigSchema
|
13
|
+
|
9
14
|
SELF_CLOSING_TAGS = %w(
|
10
15
|
area base br col command embed hr input keygen
|
11
16
|
link menuitem meta param source track wbr img
|
@@ -20,16 +25,25 @@ module ERBLint
|
|
20
25
|
start_solidus = tag_node.children.first
|
21
26
|
add_offense(
|
22
27
|
start_solidus.loc,
|
23
|
-
"Tag `#{tag.name}` is
|
28
|
+
"Tag `#{tag.name}` is a void element, it must not start with `</`.",
|
24
29
|
''
|
25
30
|
)
|
26
31
|
end
|
27
32
|
|
28
|
-
|
33
|
+
if @config.enforced_style == :always && !tag.self_closing?
|
34
|
+
add_offense(
|
35
|
+
tag_node.loc.end.offset(-1),
|
36
|
+
"Tag `#{tag.name}` is self-closing, it must end with `/>`.",
|
37
|
+
'/'
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
41
|
+
next unless @config.enforced_style == :never && tag.self_closing?
|
42
|
+
end_solidus = tag_node.children.last
|
29
43
|
add_offense(
|
30
|
-
|
31
|
-
"Tag `#{tag.name}` is
|
32
|
-
'
|
44
|
+
end_solidus.loc,
|
45
|
+
"Tag `#{tag.name}` is a void element, it must end with `>` and not `/>`.",
|
46
|
+
''
|
33
47
|
)
|
34
48
|
end
|
35
49
|
end
|
@@ -41,7 +41,7 @@ module ERBLint
|
|
41
41
|
hash['inherit_from'] = Array(hash['inherit_from'])
|
42
42
|
Array(config_path).reverse_each do |path|
|
43
43
|
# Put gem configuration first so local configuration overrides it.
|
44
|
-
hash['inherit_from'].unshift
|
44
|
+
hash['inherit_from'].unshift(gem_config_path(gem_name, path))
|
45
45
|
end
|
46
46
|
end
|
47
47
|
end
|
data/lib/erb_lint/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erb_lint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.29
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Chan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: better_html
|
@@ -184,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
184
|
version: '0'
|
185
185
|
requirements: []
|
186
186
|
rubyforge_project:
|
187
|
-
rubygems_version: 2.6
|
187
|
+
rubygems_version: 2.7.6
|
188
188
|
signing_key:
|
189
189
|
specification_version: 4
|
190
190
|
summary: ERB lint tool
|