clausewitz-spelling 0.2.10 → 0.2.11
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/Gemfile.lock +1 -1
- data/exe/clausewitz-spellcheck +4 -0
- data/lib/clausewitz/spelling/checker.rb +21 -2
- data/lib/clausewitz/spelling/results.rb +31 -3
- data/lib/clausewitz/spelling/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be3b69f409c5de0e788d8441bf149e1e98fb9e58dc1f884e1ddbdb677bc908b5
|
4
|
+
data.tar.gz: 69a997539a46e3433cdc3285c7cfc1f8902f54aff614c7c16140f561ecec5e65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e51f6da75ce51c4178c043613c4463d892c5f0f1d5335024ca532c598b56f423034d38a73c419c31498362607854ebab941788e1e39f9c9fafc9be13b58a655
|
7
|
+
data.tar.gz: b605f890e6263b5b2ec8f145a935d5a88682252c332ba0704c93ffa7ef537aff0d392741d850d716e402dc435055ee62f5f48b3c05c51bc6d3746e1e7479cbd6
|
data/Gemfile.lock
CHANGED
data/exe/clausewitz-spellcheck
CHANGED
@@ -21,6 +21,9 @@ class Main
|
|
21
21
|
opt :verbose,
|
22
22
|
"Whether to display additional output while running",
|
23
23
|
default: false
|
24
|
+
opt :commit_range,
|
25
|
+
"Range of commits for limiting check to only changed lines",
|
26
|
+
type: :string
|
24
27
|
Clausewitz::Localisation::LANG_MAP.each do |_, config|
|
25
28
|
opt "#{config.name}_dialect".to_sym,
|
26
29
|
"Select dialect for #{config.name.capitalize}",
|
@@ -43,6 +46,7 @@ class Main
|
|
43
46
|
checker_opts[:dialect_map] = dialect_map
|
44
47
|
checker_opts[:suggestion_count] = opts[:suggestion_count]
|
45
48
|
checker_opts[:verbose] = opts[:verbose]
|
49
|
+
checker_opts[:commit_range] = opts[:commit_range]
|
46
50
|
|
47
51
|
[checker_opts, args]
|
48
52
|
end
|
@@ -20,6 +20,7 @@ module Clausewitz; module Spelling
|
|
20
20
|
@dialect_map = opts[:dialect_map] || {}
|
21
21
|
@suggestion_count = opts[:suggestion_count] || DEFAULT_SUGGESTION_COUNT
|
22
22
|
@verbose = opts[:verbose]
|
23
|
+
@commit_range = opts[:commit_range]
|
23
24
|
|
24
25
|
@check_cache = {}
|
25
26
|
|
@@ -69,25 +70,43 @@ module Clausewitz; module Spelling
|
|
69
70
|
return UnparseableFileResult.new(filepath, e)
|
70
71
|
end
|
71
72
|
|
73
|
+
changed_keys = Set.new
|
74
|
+
if @commit_range
|
75
|
+
diff = `git diff -U0 #{@commit_range} #{filepath} 2>/dev/null`
|
76
|
+
changed_lines = diff.lines.select { |line| line =~ /^\+ / }
|
77
|
+
changed_lines.each do |line|
|
78
|
+
match = /\+ ([\w\d.'_-]+):([0-9]+)? \"/.match(line)
|
79
|
+
changed_keys.add(match[1]) if match
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
72
83
|
checks = contents.map do |lang_name, entries|
|
73
84
|
lc = language_config(lang_name)
|
74
|
-
|
85
|
+
ignore = []
|
86
|
+
if @commit_range
|
87
|
+
ignore = entries.keys.select do |key|
|
88
|
+
!changed_keys.include?(key)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
check_entries(entries, lc, ignore)
|
75
92
|
end
|
76
93
|
FileResults.new(filepath, checks)
|
77
94
|
end
|
78
95
|
|
79
96
|
private
|
80
97
|
|
81
|
-
def check_entries(entries, lc)
|
98
|
+
def check_entries(entries, lc, ignore = [])
|
82
99
|
spellcheck_ignore = entries&.delete('spellcheck_ignore')
|
83
100
|
ignored_keys = spellcheck_ignore ? spellcheck_ignore.split(',') : []
|
84
101
|
ignored_keys << 'spellcheck_ignore'
|
102
|
+
ignored_keys.concat(ignore)
|
85
103
|
if ignored_keys.include?('all')
|
86
104
|
return IgnoredLangResult.new(lc.clausewitz_name)
|
87
105
|
end
|
88
106
|
return LangResults.new(lc.clausewitz_name, []) unless entries
|
89
107
|
checks = entries.map do |key, entry|
|
90
108
|
if ignored_keys.include?(key)
|
109
|
+
puts "SKIPPING #{key}"
|
91
110
|
IgnoredEntryResult.new(key)
|
92
111
|
else
|
93
112
|
check_entry(key, entry, lc)
|
@@ -11,6 +11,10 @@ module Clausewitz; module Spelling
|
|
11
11
|
@lang_results.all?(&:ignored?)
|
12
12
|
end
|
13
13
|
|
14
|
+
def ignored
|
15
|
+
@lang_results.select(&:ignored?)
|
16
|
+
end
|
17
|
+
|
14
18
|
def failed?
|
15
19
|
@lang_results.any?(&:failed?)
|
16
20
|
end
|
@@ -19,8 +23,12 @@ module Clausewitz; module Spelling
|
|
19
23
|
@lang_results.select(&:failed?)
|
20
24
|
end
|
21
25
|
|
26
|
+
def ignored_total
|
27
|
+
@lang_results.reduce(0) { |memo, obj| memo += obj.ignored.size }
|
28
|
+
end
|
29
|
+
|
22
30
|
def failure_total
|
23
|
-
|
31
|
+
@lang_results.reduce(0) { |memo, obj| memo += obj.failures.size }
|
24
32
|
end
|
25
33
|
|
26
34
|
def size
|
@@ -28,7 +36,7 @@ module Clausewitz; module Spelling
|
|
28
36
|
end
|
29
37
|
|
30
38
|
def to_s
|
31
|
-
outfile = failed? ? "#{@filepath} has #{failure_total} errors (#{size} total keys checked)".red : "#{@filepath} passed (#{size} total keys checked)".green
|
39
|
+
outfile = failed? ? "#{@filepath} has #{failure_total} errors (#{size} total keys checked, #{ignored_total} keys ignored)".red : "#{@filepath} passed (#{size} total keys checked, #{ignored_total} keys ignored)".green
|
32
40
|
outfile = ignored? ? "#{@filepath} ignored".yellow : outfile
|
33
41
|
interesting = @lang_results.select { |l| l.failed? || l.ignored? }
|
34
42
|
"#{outfile}\n" + failures.map { |l| " #{l}" }.join("\n")
|
@@ -45,6 +53,10 @@ module Clausewitz; module Spelling
|
|
45
53
|
false
|
46
54
|
end
|
47
55
|
|
56
|
+
def ignored
|
57
|
+
@entry_results.select(&:ignored?)
|
58
|
+
end
|
59
|
+
|
48
60
|
def failed?
|
49
61
|
@entry_results.any?(&:failed?)
|
50
62
|
end
|
@@ -67,7 +79,7 @@ module Clausewitz; module Spelling
|
|
67
79
|
failures = @entry_results.select(&:failed?)
|
68
80
|
outlines = failures.map { |e| "#{spacer}#{e.to_str(indent + 2)}" }
|
69
81
|
outlines = outlines.join("\n")
|
70
|
-
outlang = failed? ? "#{@lang} has #{failures.size} keys with errors".red : "#{@lang} passed (#{size} keys checked)".green
|
82
|
+
outlang = failed? ? "#{@lang} has #{failures.size} keys with errors (#{size} keys checked, #{ignored.size} ignored)".red : "#{@lang} passed (#{size} keys checked, #{ignored.size} ignored)".green
|
71
83
|
out = "#{firstspacer}#{outlang}\n#{outlines}"
|
72
84
|
end
|
73
85
|
end
|
@@ -81,6 +93,10 @@ module Clausewitz; module Spelling
|
|
81
93
|
true
|
82
94
|
end
|
83
95
|
|
96
|
+
def ignored
|
97
|
+
[]
|
98
|
+
end
|
99
|
+
|
84
100
|
def failed?
|
85
101
|
false
|
86
102
|
end
|
@@ -109,6 +125,10 @@ module Clausewitz; module Spelling
|
|
109
125
|
@word_results = word_results
|
110
126
|
end
|
111
127
|
|
128
|
+
def ignored?
|
129
|
+
false
|
130
|
+
end
|
131
|
+
|
112
132
|
def failed?
|
113
133
|
!@word_results.empty?
|
114
134
|
end
|
@@ -134,6 +154,10 @@ module Clausewitz; module Spelling
|
|
134
154
|
@key = key
|
135
155
|
end
|
136
156
|
|
157
|
+
def ignored?
|
158
|
+
false
|
159
|
+
end
|
160
|
+
|
137
161
|
def failed?
|
138
162
|
true
|
139
163
|
end
|
@@ -153,6 +177,10 @@ module Clausewitz; module Spelling
|
|
153
177
|
@key = key
|
154
178
|
end
|
155
179
|
|
180
|
+
def ignored?
|
181
|
+
true
|
182
|
+
end
|
183
|
+
|
156
184
|
def failed?
|
157
185
|
false
|
158
186
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clausewitz-spelling
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Will Chappell
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|