i18n-js 3.8.0 → 3.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +3 -0
- data/.github/workflows/tests.yaml +100 -0
- data/CHANGELOG.md +10 -1
- data/README.md +442 -343
- data/i18njs.png +0 -0
- data/lib/i18n/js.rb +13 -8
- data/lib/i18n/js/private/config_store.rb +31 -0
- data/lib/i18n/js/version.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- data/yarn.lock +2 -2
- metadata +7 -4
- data/.travis.yml +0 -39
data/i18njs.png
ADDED
Binary file
|
data/lib/i18n/js.rb
CHANGED
@@ -4,6 +4,7 @@ require "i18n"
|
|
4
4
|
|
5
5
|
require "i18n/js/utils"
|
6
6
|
require "i18n/js/private/hash_with_symbol_keys"
|
7
|
+
require "i18n/js/private/config_store"
|
7
8
|
|
8
9
|
module I18n
|
9
10
|
module JS
|
@@ -26,6 +27,8 @@ module I18n
|
|
26
27
|
|
27
28
|
def self.config_file_path=(new_path)
|
28
29
|
@config_file_path = new_path
|
30
|
+
# new config file path = need to re-read config from new file
|
31
|
+
Private::ConfigStore.instance.flush_cache
|
29
32
|
end
|
30
33
|
|
31
34
|
# Allow using a different backend than the one globally configured
|
@@ -108,14 +111,16 @@ module I18n
|
|
108
111
|
# Load configuration file for partial exporting and
|
109
112
|
# custom output directory
|
110
113
|
def self.config
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
114
|
+
Private::ConfigStore.instance.fetch do
|
115
|
+
if config_file_exists?
|
116
|
+
erb_result_from_yaml_file = ERB.new(File.read(config_file_path)).result
|
117
|
+
Private::HashWithSymbolKeys.new(
|
118
|
+
(::YAML.load(erb_result_from_yaml_file) || {})
|
119
|
+
)
|
120
|
+
else
|
121
|
+
Private::HashWithSymbolKeys.new({})
|
122
|
+
end.freeze
|
123
|
+
end
|
119
124
|
end
|
120
125
|
|
121
126
|
# @api private
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "singleton"
|
4
|
+
|
5
|
+
module I18n
|
6
|
+
module JS
|
7
|
+
# @api private
|
8
|
+
module Private
|
9
|
+
# Caching implementation for I18n::JS.config
|
10
|
+
#
|
11
|
+
# @api private
|
12
|
+
class ConfigStore
|
13
|
+
include Singleton
|
14
|
+
|
15
|
+
def fetch
|
16
|
+
return @config if @config
|
17
|
+
|
18
|
+
yield.tap do |obj|
|
19
|
+
raise AugumentError, "unexpected falsy object from block" unless obj
|
20
|
+
|
21
|
+
@config = obj
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def flush_cache
|
26
|
+
@config = nil
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/i18n/js/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/yarn.lock
CHANGED
@@ -91,8 +91,8 @@ jasmine-reporters@~1.0.0:
|
|
91
91
|
mkdirp "~0.3.5"
|
92
92
|
|
93
93
|
lodash@~4.17.10:
|
94
|
-
version "4.17.
|
95
|
-
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.
|
94
|
+
version "4.17.20"
|
95
|
+
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
|
96
96
|
|
97
97
|
minimatch@^3.0.4, minimatch@~3.0.2:
|
98
98
|
version "3.0.4"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n-js
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.8.
|
4
|
+
version: 3.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nando Vieira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -102,9 +102,10 @@ extensions: []
|
|
102
102
|
extra_rdoc_files: []
|
103
103
|
files:
|
104
104
|
- ".editorconfig"
|
105
|
+
- ".github/FUNDING.yml"
|
106
|
+
- ".github/workflows/tests.yaml"
|
105
107
|
- ".gitignore"
|
106
108
|
- ".npmignore"
|
107
|
-
- ".travis.yml"
|
108
109
|
- Appraisals
|
109
110
|
- CHANGELOG.md
|
110
111
|
- Gemfile
|
@@ -128,6 +129,7 @@ files:
|
|
128
129
|
- gemfiles/i18n_1_7.gemfile
|
129
130
|
- gemfiles/i18n_1_8.gemfile
|
130
131
|
- i18n-js.gemspec
|
132
|
+
- i18njs.png
|
131
133
|
- lib/i18n-js.rb
|
132
134
|
- lib/i18n/js.rb
|
133
135
|
- lib/i18n/js/dependencies.rb
|
@@ -137,6 +139,7 @@ files:
|
|
137
139
|
- lib/i18n/js/formatters/js.rb
|
138
140
|
- lib/i18n/js/formatters/json.rb
|
139
141
|
- lib/i18n/js/middleware.rb
|
142
|
+
- lib/i18n/js/private/config_store.rb
|
140
143
|
- lib/i18n/js/private/hash_with_symbol_keys.rb
|
141
144
|
- lib/i18n/js/segment.rb
|
142
145
|
- lib/i18n/js/utils.rb
|
@@ -223,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
223
226
|
- !ruby/object:Gem::Version
|
224
227
|
version: '0'
|
225
228
|
requirements: []
|
226
|
-
rubygems_version: 3.
|
229
|
+
rubygems_version: 3.2.11
|
227
230
|
signing_key:
|
228
231
|
specification_version: 4
|
229
232
|
summary: It's a small library to provide the Rails I18n translations on the Javascript.
|
data/.travis.yml
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# Send builds to container-based infrastructure
|
2
|
-
# http://docs.travis-ci.com/user/workers/container-based-infrastructure/
|
3
|
-
sudo: false
|
4
|
-
language: ruby
|
5
|
-
cache:
|
6
|
-
bundler: true
|
7
|
-
yarn: true
|
8
|
-
directories:
|
9
|
-
- node_modules
|
10
|
-
rvm:
|
11
|
-
- 2.3
|
12
|
-
- 2.4
|
13
|
-
- 2.5
|
14
|
-
- 2.6
|
15
|
-
- 2.7
|
16
|
-
- ruby-head
|
17
|
-
before_install:
|
18
|
-
# Needed to test JS
|
19
|
-
- yarn install
|
20
|
-
gemfile:
|
21
|
-
- gemfiles/i18n_0_6.gemfile
|
22
|
-
- gemfiles/i18n_0_7.gemfile
|
23
|
-
- gemfiles/i18n_0_8.gemfile
|
24
|
-
- gemfiles/i18n_0_9.gemfile
|
25
|
-
- gemfiles/i18n_1_0.gemfile
|
26
|
-
- gemfiles/i18n_1_1.gemfile
|
27
|
-
- gemfiles/i18n_1_2.gemfile
|
28
|
-
- gemfiles/i18n_1_3.gemfile
|
29
|
-
- gemfiles/i18n_1_4.gemfile
|
30
|
-
- gemfiles/i18n_1_5.gemfile
|
31
|
-
- gemfiles/i18n_1_6.gemfile
|
32
|
-
- gemfiles/i18n_1_7.gemfile
|
33
|
-
- gemfiles/i18n_1_8.gemfile
|
34
|
-
matrix:
|
35
|
-
fast_finish: true
|
36
|
-
allow_failures:
|
37
|
-
- rvm: ruby-head
|
38
|
-
notifications:
|
39
|
-
webhooks: https://www.travisbuddy.com/?insertMode=update
|