localer 0.1.1 → 0.2.0
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/.rubocop.yml +25 -23
- data/.travis.yml +21 -13
- data/Appraisals +8 -8
- data/README.md +42 -15
- data/lib/localer/config.rb +2 -0
- data/lib/localer/data/processor.rb +4 -2
- data/lib/localer/rails.rb +1 -0
- data/lib/localer/version.rb +1 -1
- data/localer.gemspec +4 -4
- metadata +18 -18
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3dde5f5dbd5ed5e083207d5bc44407ba5f0148cc7bd6dc5770ad5adfe983ca0f
|
|
4
|
+
data.tar.gz: e4ed2783dda5c702351faa9347de409041d9157cf079d9559d970312d69b6a0d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6b615376765c4ca87a514054e60407980d45a9d2edeedaa384db193bade7f4ef54324cc3769214e86460201d5492e998f2fe6ad5f7101dae2ead6707cc7ccb83
|
|
7
|
+
data.tar.gz: 017b5416d20b70a389d886b3bb046c2f6b33a4ac02bb11edc7e567a4200b410ffb8d38ee8dda4a9406d23c2d0cbea8865f9ef0f5d4b7534ff8ef35e46d8dd9a0
|
data/.rubocop.yml
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
AllCops:
|
|
2
2
|
# Include gemspec and Rakefile
|
|
3
3
|
Include:
|
|
4
|
-
-
|
|
5
|
-
-
|
|
6
|
-
-
|
|
4
|
+
- "lib/**/*.rb"
|
|
5
|
+
- "lib/**/*.rake"
|
|
6
|
+
- "spec/**/*.rb"
|
|
7
7
|
Exclude:
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
- 'vendor/**/*'
|
|
8
|
+
- "bin/**/*"
|
|
9
|
+
- "lib/localer/ext/*.rb"
|
|
10
|
+
- "Appraisals"
|
|
11
|
+
- "Gemfile"
|
|
12
|
+
- "Rakefile"
|
|
13
|
+
- "*.gemspec"
|
|
14
|
+
- "spec/dummy_app/"
|
|
16
15
|
DisplayCopNames: true
|
|
17
16
|
StyleGuideCopsOnly: false
|
|
18
17
|
TargetRubyVersion: 2.4
|
|
@@ -28,18 +27,27 @@ Style/TrivialAccessors:
|
|
|
28
27
|
|
|
29
28
|
Style/Documentation:
|
|
30
29
|
Exclude:
|
|
31
|
-
-
|
|
30
|
+
- "spec/**/*.rb"
|
|
32
31
|
|
|
33
32
|
Style/StringLiterals:
|
|
34
33
|
Enabled: false
|
|
35
34
|
|
|
36
35
|
Style/BlockDelimiters:
|
|
37
36
|
Exclude:
|
|
38
|
-
-
|
|
37
|
+
- "spec/**/*.rb"
|
|
39
38
|
|
|
40
39
|
Style/DoubleNegation:
|
|
41
40
|
Enabled: false
|
|
42
41
|
|
|
42
|
+
Style/HashEachMethods:
|
|
43
|
+
Enabled: true
|
|
44
|
+
|
|
45
|
+
Style/HashTransformKeys:
|
|
46
|
+
Enabled: true
|
|
47
|
+
|
|
48
|
+
Style/HashTransformValues:
|
|
49
|
+
Enabled: true
|
|
50
|
+
|
|
43
51
|
Layout/SpaceInsideStringInterpolation:
|
|
44
52
|
EnforcedStyle: no_space
|
|
45
53
|
|
|
@@ -51,22 +59,16 @@ Lint/AmbiguousBlockAssociation:
|
|
|
51
59
|
|
|
52
60
|
Metrics/MethodLength:
|
|
53
61
|
Exclude:
|
|
54
|
-
-
|
|
62
|
+
- "spec/**/*.rb"
|
|
55
63
|
|
|
56
|
-
|
|
64
|
+
Layout/LineLength:
|
|
57
65
|
Max: 120
|
|
58
66
|
Exclude:
|
|
59
|
-
-
|
|
67
|
+
- "spec/**/*.rb"
|
|
60
68
|
|
|
61
69
|
Metrics/BlockLength:
|
|
62
70
|
Exclude:
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
Rails/Date:
|
|
66
|
-
Enabled: false
|
|
67
|
-
|
|
68
|
-
Rails/TimeZone:
|
|
69
|
-
Enabled: false
|
|
71
|
+
- "spec/**/*.rb"
|
|
70
72
|
|
|
71
73
|
Security/YAMLLoad:
|
|
72
74
|
Enabled: false
|
data/.travis.yml
CHANGED
|
@@ -1,21 +1,29 @@
|
|
|
1
|
+
language: ruby
|
|
2
|
+
|
|
1
3
|
sudo: false
|
|
2
4
|
dist: trusty
|
|
3
|
-
|
|
5
|
+
|
|
6
|
+
notifications:
|
|
7
|
+
email: false
|
|
4
8
|
|
|
5
9
|
before_install:
|
|
6
|
-
- gem install bundler
|
|
10
|
+
- gem install bundler:1.17.3
|
|
11
|
+
|
|
7
12
|
rvm:
|
|
8
|
-
- 2.
|
|
9
|
-
- 2.
|
|
10
|
-
- 2.
|
|
13
|
+
- 2.4
|
|
14
|
+
- 2.5
|
|
15
|
+
- 2.6
|
|
16
|
+
- 2.7
|
|
17
|
+
|
|
11
18
|
gemfile:
|
|
12
19
|
- gemfiles/rails50.gemfile
|
|
13
20
|
- gemfiles/rails51.gemfile
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
- gemfiles/rails52.gemfile
|
|
22
|
+
- gemfiles/rails60.gemfile
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
exclude:
|
|
26
|
+
- rvm: 2.4
|
|
27
|
+
gemfile: gemfiles/rails52.gemfile
|
|
28
|
+
- rvm: 2.4
|
|
29
|
+
gemfile: gemfiles/rails60.gemfile
|
data/Appraisals
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
appraise '
|
|
2
|
-
gem 'rails', '~>
|
|
1
|
+
appraise 'rails50' do
|
|
2
|
+
gem 'rails', '~> 5.0'
|
|
3
3
|
end
|
|
4
4
|
|
|
5
|
-
appraise '
|
|
6
|
-
gem 'rails', '~>
|
|
5
|
+
appraise 'rails51' do
|
|
6
|
+
gem 'rails', '~> 5.1'
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
appraise '
|
|
10
|
-
gem 'rails', '5.
|
|
9
|
+
appraise 'rails52' do
|
|
10
|
+
gem 'rails', '~> 5.2'
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
appraise '
|
|
14
|
-
gem 'rails', '
|
|
13
|
+
appraise 'rails60' do
|
|
14
|
+
gem 'rails', '~> 6.0'
|
|
15
15
|
end
|
data/README.md
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
[](https://travis-ci.org/aderyabin/localer) [](https://rubygems.org/gems/localer)
|
|
2
1
|
|
|
3
|
-
|
|
2
|
+
<p align="center">
|
|
3
|
+
<img title="Localer logo" width="384" height="100" src="https://gist.githubusercontent.com/aderyabin/cb0512cbcd6cb4c79a4d84a4831109a5/raw/localer-logo.png">
|
|
4
|
+
</p>
|
|
5
|
+
|
|
6
|
+
[](https://rubygems.org/gems/localer) [](https://travis-ci.org/aderyabin/localer)
|
|
7
|
+
|
|
4
8
|
Localer is a tool that automatically detects missing I18n translations.
|
|
5
9
|
|
|
6
10
|
The goal is to preserve the integrity of translations. Localer parses and merges all application locales’ keys. At the next step, it searches for missing translations among the calculated keys.
|
|
7
11
|
|
|
8
|
-
<p align="
|
|
9
|
-
<img
|
|
10
|
-
</p>
|
|
11
|
-
|
|
12
|
-
<p align="center">
|
|
13
|
-
<a href="https://evilmartians.com/?utm_source=localer">
|
|
14
|
-
<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
|
|
15
|
-
alt="Sponsored by Evil Martians" width="236" height="54">
|
|
16
|
-
</a>
|
|
12
|
+
<p align="left">
|
|
13
|
+
<img height="500" src="https://gist.githubusercontent.com/aderyabin/cb0512cbcd6cb4c79a4d84a4831109a5/raw/localer2.png">
|
|
17
14
|
</p>
|
|
18
15
|
|
|
19
16
|
## Installation
|
|
@@ -42,9 +39,38 @@ or for specific Rails path:
|
|
|
42
39
|
|
|
43
40
|
$ localer check /path/to/rails/application
|
|
44
41
|
|
|
42
|
+
## CI integration
|
|
43
|
+
|
|
44
|
+
Localer is easy to integrate into your favorite CI workflow:
|
|
45
|
+
```yml
|
|
46
|
+
# .travis.yml
|
|
47
|
+
|
|
48
|
+
# other configuration options
|
|
49
|
+
script:
|
|
50
|
+
- bundle exec bundle-audit
|
|
51
|
+
- bundle exec rubocop
|
|
52
|
+
- bundle exec rspec
|
|
53
|
+
- bundle exec localer
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
or
|
|
57
|
+
|
|
58
|
+
```ruby
|
|
59
|
+
# Rakefile
|
|
60
|
+
|
|
61
|
+
# other requirements
|
|
62
|
+
require 'localer/rake_task'
|
|
63
|
+
Localer::RakeTask.new()
|
|
64
|
+
|
|
65
|
+
task(:default).clear
|
|
66
|
+
task default: [:rubocop, :spec, :localer]
|
|
67
|
+
```
|
|
68
|
+
|
|
45
69
|
## Support
|
|
46
70
|
|
|
47
|
-
Localer supports
|
|
71
|
+
Localer supports
|
|
72
|
+
* Ruby: 2.4, 2.5, 2.6, 2.7
|
|
73
|
+
* Rails: 5.0, 5.1, 5.2, 6.0
|
|
48
74
|
|
|
49
75
|
## Configuration
|
|
50
76
|
|
|
@@ -80,7 +106,7 @@ Locale:
|
|
|
80
106
|
|
|
81
107
|
## Using Rake
|
|
82
108
|
|
|
83
|
-
Localer ships with a rake task. To use
|
|
109
|
+
Localer ships with a rake task. To use Localer's rake task you simply need to require the task file and define a task with it. Below is a rake task that will run `localer`:
|
|
84
110
|
|
|
85
111
|
```ruby
|
|
86
112
|
require 'rubygems'
|
|
@@ -100,8 +126,6 @@ you should see
|
|
|
100
126
|
rake localer # Run Localer
|
|
101
127
|
```
|
|
102
128
|
|
|
103
|
-
####
|
|
104
|
-
|
|
105
129
|
## Development
|
|
106
130
|
|
|
107
131
|
After checking out the repo, run `bundle exec appraisal install` to install dependencies for each appraisal. Then, run `bundle exec appraisal rake` to run the tests.
|
|
@@ -112,6 +136,9 @@ After checking out the repo, run `bundle exec appraisal install` to install depe
|
|
|
112
136
|
* [Appraisal](https://github.com/thoughtbot/appraisal) - Used for testing against different versions of dependencies
|
|
113
137
|
* [Cucumber](https://github.com/cucumber/cucumber) + [Aruba](https://github.com/cucumber/aruba) - Used for testing command-line commands
|
|
114
138
|
|
|
139
|
+
## Acknowledge
|
|
140
|
+
Special thanks to [Roman Shamin](https://www.facebook.com/romanshamin) for the logo.
|
|
141
|
+
|
|
115
142
|
## Contributing
|
|
116
143
|
|
|
117
144
|
Bug reports and pull requests are welcome on GitHub at https://github.com/aderyabin/localer. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
data/lib/localer/config.rb
CHANGED
|
@@ -18,7 +18,8 @@ module Localer # :nodoc:
|
|
|
18
18
|
@data = Hash.new { |hsh, key| hsh[key] = {} }
|
|
19
19
|
@locales = []
|
|
20
20
|
translations.each do |(locale, translation)|
|
|
21
|
-
next unless config.locale[locale].enabled
|
|
21
|
+
next unless config.locale[locale.downcase].enabled
|
|
22
|
+
|
|
22
23
|
@locales.push locale
|
|
23
24
|
prepare(locale, translation)
|
|
24
25
|
end
|
|
@@ -32,6 +33,7 @@ module Localer # :nodoc:
|
|
|
32
33
|
translation.each do |(key, value)|
|
|
33
34
|
full_key = prefix + ".#{key}"
|
|
34
35
|
next if exclude?(full_key, locale)
|
|
36
|
+
|
|
35
37
|
prepare(locale, value, full_key)
|
|
36
38
|
end
|
|
37
39
|
else
|
|
@@ -41,7 +43,7 @@ module Localer # :nodoc:
|
|
|
41
43
|
end
|
|
42
44
|
|
|
43
45
|
def exclude?(key, locale)
|
|
44
|
-
(config.exclude + config.locale[locale].exclude).any? do |pattern|
|
|
46
|
+
(config.exclude + config.locale[locale.downcase].exclude).any? do |pattern|
|
|
45
47
|
match?(key, pattern)
|
|
46
48
|
end
|
|
47
49
|
end
|
data/lib/localer/rails.rb
CHANGED
data/lib/localer/version.rb
CHANGED
data/localer.gemspec
CHANGED
|
@@ -21,13 +21,13 @@ Gem::Specification.new do |spec|
|
|
|
21
21
|
spec.require_paths = ["lib"]
|
|
22
22
|
|
|
23
23
|
spec.add_development_dependency "appraisal"
|
|
24
|
-
spec.add_development_dependency "bundler", "~> 1.
|
|
25
|
-
spec.add_development_dependency "rake", "
|
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.17"
|
|
25
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
|
26
26
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
27
27
|
spec.add_development_dependency "rubocop", "~> 0.50"
|
|
28
28
|
spec.add_development_dependency "cucumber"
|
|
29
29
|
spec.add_development_dependency "aruba"
|
|
30
30
|
|
|
31
|
-
spec.add_dependency "thor", "
|
|
32
|
-
spec.add_dependency "dry-initializer", "
|
|
31
|
+
spec.add_dependency "thor", ">= 0.19"
|
|
32
|
+
spec.add_dependency "dry-initializer", ">= 2.0"
|
|
33
33
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: localer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrey Deryabin
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-03-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: appraisal
|
|
@@ -30,28 +30,28 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '1.
|
|
33
|
+
version: '1.17'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '1.
|
|
40
|
+
version: '1.17'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rake
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "
|
|
45
|
+
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
47
|
+
version: 12.3.3
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- - "
|
|
52
|
+
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
54
|
+
version: 12.3.3
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: rspec
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -112,30 +112,30 @@ dependencies:
|
|
|
112
112
|
name: thor
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
|
-
- - "
|
|
115
|
+
- - ">="
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: 0.
|
|
117
|
+
version: '0.19'
|
|
118
118
|
type: :runtime
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
|
-
- - "
|
|
122
|
+
- - ">="
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: 0.
|
|
124
|
+
version: '0.19'
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
126
|
name: dry-initializer
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
128
128
|
requirements:
|
|
129
|
-
- - "
|
|
129
|
+
- - ">="
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: 2.
|
|
131
|
+
version: '2.0'
|
|
132
132
|
type: :runtime
|
|
133
133
|
prerelease: false
|
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
|
-
- - "
|
|
136
|
+
- - ">="
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: 2.
|
|
138
|
+
version: '2.0'
|
|
139
139
|
description: Automatic detecting missing I18n translations tool.
|
|
140
140
|
email:
|
|
141
141
|
- deriabin@gmail.com
|
|
@@ -151,6 +151,7 @@ files:
|
|
|
151
151
|
- Appraisals
|
|
152
152
|
- CODE_OF_CONDUCT.md
|
|
153
153
|
- Gemfile
|
|
154
|
+
- Gemfile.lock
|
|
154
155
|
- LICENSE.txt
|
|
155
156
|
- README.md
|
|
156
157
|
- Rakefile
|
|
@@ -189,8 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
189
190
|
- !ruby/object:Gem::Version
|
|
190
191
|
version: '0'
|
|
191
192
|
requirements: []
|
|
192
|
-
|
|
193
|
-
rubygems_version: 2.7.4
|
|
193
|
+
rubygems_version: 3.0.3
|
|
194
194
|
signing_key:
|
|
195
195
|
specification_version: 4
|
|
196
196
|
summary: Automatic detecting missing I18n translations tool.
|