erb_lint 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98ba7a87f348e584502a9e4810f9311329c04aeddf34af0b05a37702648b495e
|
4
|
+
data.tar.gz: 8728892a4c09fcbdbddb60316b911bf73ce099cc04e9ac10534b76f8aa6708a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d01f3c07ddebb9482ee744c69df6e799b4c0cb06bd24ffd7939f3d86e612a4f1bb2d5b4040c8505d7c8f8e9cceaecaabcca7dc03cab6ea5f23e73f10e098345
|
7
|
+
data.tar.gz: '080398f6522352b669bf21ea1fbdd8850b7b6b8dcef60493d8349fbfeb98eceeefc77c15442cad339612e83c5056d5498a286046c3a3749a73428661c962b695'
|
@@ -17,7 +17,7 @@ module ERBLint
|
|
17
17
|
ALLOWED_CORRECTORS = ["I18nCorrector", "RuboCop::Corrector::I18n::HardCodedString"]
|
18
18
|
|
19
19
|
NON_TEXT_TAGS = Set.new(["script", "style", "xmp", "iframe", "noembed", "noframes", "listing"])
|
20
|
-
|
20
|
+
NO_TRANSLATION_NEEDED = Set.new([
|
21
21
|
" ",
|
22
22
|
"&",
|
23
23
|
"<",
|
@@ -40,6 +40,7 @@ module ERBLint
|
|
40
40
|
" ",
|
41
41
|
" ",
|
42
42
|
" ",
|
43
|
+
"×",
|
43
44
|
])
|
44
45
|
|
45
46
|
class ConfigSchema < LinterConfig
|
@@ -96,7 +97,7 @@ module ERBLint
|
|
96
97
|
|
97
98
|
def check_string?(str)
|
98
99
|
string = str.gsub(/\s*/, "")
|
99
|
-
string.length > 1 && !
|
100
|
+
string.length > 1 && !NO_TRANSLATION_NEEDED.include?(string)
|
100
101
|
end
|
101
102
|
|
102
103
|
def load_corrector
|
@@ -0,0 +1,112 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rexml/document"
|
4
|
+
require "rexml/formatters/pretty"
|
5
|
+
|
6
|
+
module ERBLint
|
7
|
+
module Reporters
|
8
|
+
class JunitReporter < Reporter
|
9
|
+
def preview; end
|
10
|
+
|
11
|
+
def show
|
12
|
+
xml = create_junit_xml
|
13
|
+
formatted_xml_string = StringIO.new
|
14
|
+
REXML::Formatters::Pretty.new.write(xml, formatted_xml_string)
|
15
|
+
puts formatted_xml_string.string
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
CONTEXT = {
|
21
|
+
prologue_quote: :quote,
|
22
|
+
attribute_quote: :quote,
|
23
|
+
}
|
24
|
+
|
25
|
+
def create_junit_xml
|
26
|
+
# create prologue
|
27
|
+
xml = REXML::Document.new(nil, CONTEXT)
|
28
|
+
xml << REXML::XMLDecl.new("1.0", "UTF-8")
|
29
|
+
|
30
|
+
xml.add_element(create_testsuite_element)
|
31
|
+
|
32
|
+
xml
|
33
|
+
end
|
34
|
+
|
35
|
+
def create_testsuite_element
|
36
|
+
tests = stats.processed_files.size
|
37
|
+
failures = stats.found
|
38
|
+
testsuite_element = REXML::Element.new("testsuite", nil, CONTEXT)
|
39
|
+
testsuite_element.add_attribute("name", "erblint")
|
40
|
+
testsuite_element.add_attribute("tests", tests.to_s)
|
41
|
+
testsuite_element.add_attribute("failures", failures.to_s)
|
42
|
+
|
43
|
+
testsuite_element.add_element(create_properties)
|
44
|
+
|
45
|
+
processed_files.each do |filename, offenses|
|
46
|
+
if offenses.empty?
|
47
|
+
testcase_element = REXML::Element.new("testcase", nil, CONTEXT)
|
48
|
+
testcase_element.add_attribute("name", filename.to_s)
|
49
|
+
testcase_element.add_attribute("file", filename.to_s)
|
50
|
+
|
51
|
+
testsuite_element.add_element(testcase_element)
|
52
|
+
end
|
53
|
+
|
54
|
+
offenses.each do |offense|
|
55
|
+
testsuite_element.add_element(create_testcase(filename, offense))
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
testsuite_element
|
60
|
+
end
|
61
|
+
|
62
|
+
def create_properties
|
63
|
+
properties_element = REXML::Element.new("properties", nil, CONTEXT)
|
64
|
+
|
65
|
+
[
|
66
|
+
["erb_lint_version", ERBLint::VERSION],
|
67
|
+
["ruby_engine", RUBY_ENGINE],
|
68
|
+
["ruby_version", RUBY_VERSION],
|
69
|
+
["ruby_patchlevel", RUBY_PATCHLEVEL.to_s],
|
70
|
+
["ruby_platform", RUBY_PLATFORM],
|
71
|
+
].each do |property_attribute|
|
72
|
+
properties_element.add_element(create_property(*property_attribute))
|
73
|
+
end
|
74
|
+
|
75
|
+
properties_element
|
76
|
+
end
|
77
|
+
|
78
|
+
def create_property(name, value)
|
79
|
+
property_element = REXML::Element.new("property")
|
80
|
+
property_element.add_attribute("name", name)
|
81
|
+
property_element.add_attribute("value", value)
|
82
|
+
|
83
|
+
property_element
|
84
|
+
end
|
85
|
+
|
86
|
+
def create_testcase(filename, offense)
|
87
|
+
testcase_element = REXML::Element.new("testcase", nil, CONTEXT)
|
88
|
+
testcase_element.add_attribute("name", filename.to_s)
|
89
|
+
testcase_element.add_attribute("file", filename.to_s)
|
90
|
+
testcase_element.add_attribute("lineno", offense.line_number.to_s)
|
91
|
+
|
92
|
+
testcase_element.add_element(create_failure(filename, offense))
|
93
|
+
|
94
|
+
testcase_element
|
95
|
+
end
|
96
|
+
|
97
|
+
def create_failure(filename, offense)
|
98
|
+
message = offense.message
|
99
|
+
type = offense.simple_name
|
100
|
+
|
101
|
+
failure_element = REXML::Element.new("failure", nil, CONTEXT)
|
102
|
+
failure_element.add_attribute("message", "#{type}: #{message}")
|
103
|
+
failure_element.add_attribute("type", type.to_s)
|
104
|
+
|
105
|
+
cdata_element = REXML::CData.new("#{type}: #{message} at #{filename}:#{offense.line_number}:#{offense.column}")
|
106
|
+
failure_element.add_text(cdata_element)
|
107
|
+
|
108
|
+
failure_element
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
@@ -83,7 +83,7 @@ module ERBLint
|
|
83
83
|
def config_hash_for_linter(klass_name)
|
84
84
|
config_hash = linters_config[klass_name] || {}
|
85
85
|
config_hash["exclude"] ||= []
|
86
|
-
config_hash["exclude"].concat(global_exclude) if config_hash["exclude"].is_a?(Array)
|
86
|
+
config_hash["exclude"].concat(global_exclude).uniq! if config_hash["exclude"].is_a?(Array)
|
87
87
|
config_hash
|
88
88
|
end
|
89
89
|
|
data/lib/erb_lint/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erb_lint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Chan
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-08-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -183,6 +183,7 @@ files:
|
|
183
183
|
- lib/erb_lint/reporter.rb
|
184
184
|
- lib/erb_lint/reporters/compact_reporter.rb
|
185
185
|
- lib/erb_lint/reporters/json_reporter.rb
|
186
|
+
- lib/erb_lint/reporters/junit_reporter.rb
|
186
187
|
- lib/erb_lint/reporters/multiline_reporter.rb
|
187
188
|
- lib/erb_lint/runner.rb
|
188
189
|
- lib/erb_lint/runner_config.rb
|
@@ -214,7 +215,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
215
|
- !ruby/object:Gem::Version
|
215
216
|
version: '0'
|
216
217
|
requirements: []
|
217
|
-
rubygems_version: 3.4.
|
218
|
+
rubygems_version: 3.4.18
|
218
219
|
signing_key:
|
219
220
|
specification_version: 4
|
220
221
|
summary: ERB lint tool
|