i18n-dot_lookup 0.1.0 → 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 +5 -5
- data/.github/FUNDING.yml +3 -0
- data/.rubocop.yml +23 -0
- data/.travis.yml +5 -1
- data/Gemfile +3 -1
- data/README.md +23 -12
- data/Rakefile +11 -6
- data/i18n-dot_lookup.gemspec +26 -16
- data/lib/i18n-dot_lookup.rb +8 -1
- data/lib/i18n-dot_lookup/version.rb +3 -1
- data/lib/i18n/backend/dot_lookup.rb +31 -17
- metadata +75 -18
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: e4f4d30542fe220f1bf7e6618667b1aa291fab639e827a495207d5a6b6fc36d4
|
|
4
|
+
data.tar.gz: 215042d0b793b12deca58c295e3d68980cbf7abdcaf5f560f352faa6d47ded2c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5c1919375728c718505820742bfc75225eab8ed4ef27ad1fa91f00b27eca1819491d7d0cdf51c3d45f2ec33005131108f6848508cd318212921b5fdf77913ed7
|
|
7
|
+
data.tar.gz: 75fd94d3fe4f44e3baa0b9fa7ff4051346af2a69fe661453d0cbbbf14d4afdb787ea8444997f8e9adb9f98b3f27e88212b7ad3767b528df81bd58a2a2252865d
|
data/.github/FUNDING.yml
ADDED
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
inherit_gem:
|
|
3
|
+
rubocop-fnando: .rubocop.yml
|
|
4
|
+
|
|
5
|
+
AllCops:
|
|
6
|
+
TargetRubyVersion: 2.7
|
|
7
|
+
NewCops: enable
|
|
8
|
+
|
|
9
|
+
Naming/FileName:
|
|
10
|
+
Exclude:
|
|
11
|
+
- lib/i18n-dot_lookup.rb
|
|
12
|
+
|
|
13
|
+
Metrics/AbcSize:
|
|
14
|
+
Enabled: false
|
|
15
|
+
|
|
16
|
+
Metrics/CyclomaticComplexity:
|
|
17
|
+
Enabled: false
|
|
18
|
+
|
|
19
|
+
Metrics/MethodLength:
|
|
20
|
+
Enabled: false
|
|
21
|
+
|
|
22
|
+
Metrics/PerceivedComplexity:
|
|
23
|
+
Enabled: false
|
data/.travis.yml
CHANGED
|
@@ -2,7 +2,11 @@ language: ruby
|
|
|
2
2
|
cache: bundler
|
|
3
3
|
sudo: false
|
|
4
4
|
rvm:
|
|
5
|
-
- 2.
|
|
5
|
+
- 2.7.1
|
|
6
|
+
- 2.6.5
|
|
6
7
|
before_install: gem install bundler
|
|
7
8
|
notifications:
|
|
8
9
|
email: false
|
|
10
|
+
env:
|
|
11
|
+
global:
|
|
12
|
+
secure: ajBIIzw0/L1Hpt/NQXL8UKUpJVOZBRLDMiRC4SAiEWpoDpl3HsIpyyq/D7EyzOUtwZCvxEBO7w0WtbfQ2pqjjuBPsNof5IMtYprng0lMKqQ8VkO59uAJsY4If1bOk1a729hpeo9aVr4PqW478gg5IYVVC+ymJ8m6WOnmDWDS7A1sxIs/M9/52kYGWzdDrwsMo0qRXqg+1AI+/dXCpXHtWgp5T9oNa3AVAvM50umsJRkio9p2WtWnTWADVkeu1xli8Td6yWhujRdUyK2bfdSI6o6eI6yUQVxqhoAlC6HIxfQQmhhXCIs4pd1d6hiQXDVwpMVt9UvVK2yQJL6+DLXCQto+YS7OzbSq98FCrp8637Pl8XF5Le2iUFy2tzcasCwTgfgI20CzxxWQkYN/xWjZtT43sx+nagjzi8GHzfR9jee8ttSlbIx/8brP3h/l9ylBVQISRId04u6drgEkk9It2ET58Ue+WNL0zOBRPgCnixmGvMMe6weFLi1WxbuLP0+FCc/EFnT1mEGbxWUiLNbDl3gDJUbfgVOsO4RmWvuTghIpJlcXv8E8aZsyHQBXia0jUCwVOgV2i0O8kDjHgLfY1QOmwKPrB8YE4uuIYNyZL2sPJyn2inKEmzovQHSl5gbFk+Z9AD72zpNleHiPL1F8esbtiN4Ud7VD5/6f4RXuADM=
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
# i18n-dot_lookup
|
|
2
2
|
|
|
3
|
-
](https://travis-ci.org/fnando/i18n-dot_lookup)
|
|
4
|
+
[](https://codeclimate.com/github/fnando/i18n-dot_lookup)
|
|
5
|
+
[](https://rubygems.org/gems/i18n-dot_lookup)
|
|
6
|
+
[](https://rubygems.org/gems/i18n-dot_lookup)
|
|
4
7
|
|
|
5
8
|
Ever wanted to get properties from an object, like `%{user.name}`? Now you can!
|
|
6
9
|
|
|
@@ -9,7 +12,7 @@ Ever wanted to get properties from an object, like `%{user.name}`? Now you can!
|
|
|
9
12
|
Add this line to your application's Gemfile:
|
|
10
13
|
|
|
11
14
|
```ruby
|
|
12
|
-
gem
|
|
15
|
+
gem "i18n-dot_lookup"
|
|
13
16
|
```
|
|
14
17
|
|
|
15
18
|
And then execute:
|
|
@@ -23,29 +26,37 @@ Or install it yourself as:
|
|
|
23
26
|
## Usage
|
|
24
27
|
|
|
25
28
|
```ruby
|
|
26
|
-
require
|
|
27
|
-
require
|
|
29
|
+
require "i18n-dot_lookup"
|
|
30
|
+
require "ostruct"
|
|
28
31
|
|
|
29
32
|
# You don't need to do this, but can use it to test on your console.
|
|
30
|
-
I18n.backend.store_translations :en, {hello:
|
|
33
|
+
I18n.backend.store_translations :en, {hello: "hello %{user.name}"}
|
|
31
34
|
|
|
32
35
|
# The user object will probably come from your database
|
|
33
|
-
I18n.t :hello, user: OpenStruct.new(name:
|
|
36
|
+
I18n.t :hello, user: OpenStruct.new(name: "john")
|
|
34
37
|
#=> hello john
|
|
35
38
|
```
|
|
36
39
|
|
|
37
40
|
## Development
|
|
38
41
|
|
|
39
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
42
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
43
|
+
`rake test` to run the tests. You can also run `bin/console` for an interactive
|
|
44
|
+
prompt that will allow you to experiment.
|
|
40
45
|
|
|
41
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
46
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
47
|
+
release a new version, update the version number in `version.rb`, and then run
|
|
48
|
+
`bundle exec rake release`, which will create a git tag for the version, push
|
|
49
|
+
git commits and tags, and push the `.gem` file to
|
|
50
|
+
[rubygems.org](https://rubygems.org).
|
|
42
51
|
|
|
43
52
|
## Contributing
|
|
44
53
|
|
|
45
|
-
Bug reports and pull requests are welcome on GitHub at
|
|
46
|
-
|
|
54
|
+
Bug reports and pull requests are welcome on GitHub at
|
|
55
|
+
https://github.com/fnando/i18n-dot_lookup. This project is intended to be a
|
|
56
|
+
safe, welcoming space for collaboration, and contributors are expected to adhere
|
|
57
|
+
to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
|
47
58
|
|
|
48
59
|
## License
|
|
49
60
|
|
|
50
|
-
The gem is available as open source under the terms of the
|
|
51
|
-
|
|
61
|
+
The gem is available as open source under the terms of the
|
|
62
|
+
[MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "bundler/gem_tasks"
|
|
4
|
+
require "rake/testtask"
|
|
5
|
+
require "rubocop/rake_task"
|
|
3
6
|
|
|
4
7
|
Rake::TestTask.new(:test) do |t|
|
|
5
|
-
t.libs <<
|
|
6
|
-
t.
|
|
7
|
-
t.
|
|
8
|
+
t.libs << "test"
|
|
9
|
+
t.test_files = FileList["test/**/*_test.rb"]
|
|
10
|
+
t.warning = false
|
|
8
11
|
end
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
RuboCop::RakeTask.new
|
|
14
|
+
|
|
15
|
+
task default: %i[test rubocop]
|
data/i18n-dot_lookup.gemspec
CHANGED
|
@@ -1,24 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "./lib/i18n-dot_lookup/version"
|
|
2
4
|
|
|
3
5
|
Gem::Specification.new do |spec|
|
|
4
|
-
spec.name =
|
|
6
|
+
spec.name = "i18n-dot_lookup"
|
|
5
7
|
spec.version = I18nDotLookup::VERSION
|
|
6
|
-
spec.authors = [
|
|
7
|
-
spec.email = [
|
|
8
|
+
spec.authors = ["Nando Vieira"]
|
|
9
|
+
spec.email = ["fnando.vieira@gmail.com"]
|
|
10
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
|
8
11
|
|
|
9
|
-
spec.summary = "Allow interpolation to be performed on a object's
|
|
12
|
+
spec.summary = "Allow interpolation to be performed on a object's "\
|
|
13
|
+
"attribute, e.g. %{user.name}"
|
|
10
14
|
spec.description = spec.summary
|
|
11
|
-
spec.homepage =
|
|
12
|
-
spec.license =
|
|
15
|
+
spec.homepage = "https://github.com/fnando/i18n-dot_lookup"
|
|
16
|
+
spec.license = "MIT"
|
|
13
17
|
|
|
14
|
-
spec.files = `git ls-files -z
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
spec.files = `git ls-files -z`
|
|
19
|
+
.split("\x0")
|
|
20
|
+
.reject {|f| f.match(%r{^(test|spec|features)/}) }
|
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) {|f| File.basename(f) }
|
|
22
|
+
spec.require_paths = ["lib"]
|
|
17
23
|
|
|
18
|
-
spec.add_dependency
|
|
19
|
-
spec.add_development_dependency
|
|
20
|
-
spec.add_development_dependency
|
|
21
|
-
spec.add_development_dependency
|
|
22
|
-
spec.add_development_dependency
|
|
23
|
-
spec.add_development_dependency
|
|
24
|
+
spec.add_dependency "i18n"
|
|
25
|
+
spec.add_development_dependency "activesupport"
|
|
26
|
+
spec.add_development_dependency "bundler"
|
|
27
|
+
spec.add_development_dependency "minitest"
|
|
28
|
+
spec.add_development_dependency "minitest-utils"
|
|
29
|
+
spec.add_development_dependency "pry-meta"
|
|
30
|
+
spec.add_development_dependency "rake"
|
|
31
|
+
spec.add_development_dependency "rubocop"
|
|
32
|
+
spec.add_development_dependency "rubocop-fnando"
|
|
33
|
+
spec.add_development_dependency "simplecov"
|
|
24
34
|
end
|
data/lib/i18n-dot_lookup.rb
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "i18n/backend/dot_lookup"
|
|
2
4
|
I18n.backend = I18n::Backend::DotLookup.new
|
|
5
|
+
|
|
6
|
+
if I18n.config.respond_to?(:interpolation_patterns)
|
|
7
|
+
I18n.config.interpolation_patterns <<
|
|
8
|
+
I18n::Backend::DotLookup::INTERPOLATION_PATTERN
|
|
9
|
+
end
|
|
@@ -1,18 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "i18n"
|
|
2
4
|
|
|
3
5
|
module I18n
|
|
4
6
|
module Backend
|
|
5
7
|
class DotLookup < Simple
|
|
6
|
-
|
|
7
|
-
UNKNOWN_PROPERTY
|
|
8
|
-
DOT
|
|
8
|
+
INTERPOLATION_PATTERN = /%\{(\w+(?:\.\w+)+)\}/.freeze
|
|
9
|
+
UNKNOWN_PROPERTY = Object.new
|
|
10
|
+
DOT = "."
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
verbose = $VERBOSE
|
|
13
|
+
$VERBOSE = nil
|
|
14
|
+
::I18n::INTERPOLATION_PATTERN =
|
|
15
|
+
Regexp.union(INTERPOLATION_PATTERN, ::I18n::INTERPOLATION_PATTERN)
|
|
16
|
+
$VERBOSE = verbose
|
|
13
17
|
|
|
14
18
|
def translate(locale, key, options = {})
|
|
15
|
-
raise InvalidLocale
|
|
19
|
+
raise InvalidLocale, locale unless locale
|
|
20
|
+
|
|
21
|
+
options = options.dup
|
|
16
22
|
entry = key && lookup(locale, key, options[:scope], options)
|
|
17
23
|
|
|
18
24
|
if options.empty?
|
|
@@ -20,14 +26,21 @@ module I18n
|
|
|
20
26
|
else
|
|
21
27
|
count, default = options.values_at(:count, :default)
|
|
22
28
|
values = options.except(*RESERVED_KEYS)
|
|
23
|
-
|
|
24
|
-
|
|
29
|
+
|
|
30
|
+
entry = if entry.nil? && default
|
|
31
|
+
default(locale, key, default, options)
|
|
32
|
+
else
|
|
33
|
+
resolve(locale, key, entry, options)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
if entry.nil?
|
|
38
|
+
throw(:exception, I18n::MissingTranslation.new(locale, key, options))
|
|
25
39
|
end
|
|
26
40
|
|
|
27
|
-
throw(:exception, I18n::MissingTranslation.new(locale, key, options)) if entry.nil?
|
|
28
41
|
entry = entry.dup if entry.is_a?(String)
|
|
29
42
|
|
|
30
|
-
populate_options(entry, values) if entry.
|
|
43
|
+
populate_options(entry, values) if entry.is_a?(String)
|
|
31
44
|
entry = pluralize(locale, entry, count) if count
|
|
32
45
|
entry = interpolate(locale, entry, values) if values
|
|
33
46
|
entry
|
|
@@ -43,16 +56,17 @@ module I18n
|
|
|
43
56
|
end
|
|
44
57
|
|
|
45
58
|
def extract_keys(subject)
|
|
46
|
-
subject.scan(
|
|
59
|
+
subject.scan(INTERPOLATION_PATTERN).flatten
|
|
47
60
|
end
|
|
48
61
|
|
|
49
62
|
def get_value(object, keys)
|
|
50
|
-
|
|
51
|
-
|
|
63
|
+
keys.inject(object) do |target, key|
|
|
64
|
+
unless target&.respond_to?(key)
|
|
65
|
+
throw :unknown_property, UNKNOWN_PROPERTY
|
|
66
|
+
end
|
|
67
|
+
|
|
52
68
|
target.public_send(key)
|
|
53
69
|
end
|
|
54
|
-
|
|
55
|
-
value
|
|
56
70
|
end
|
|
57
71
|
end
|
|
58
72
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: i18n-dot_lookup
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nando Vieira
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-09-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: i18n
|
|
@@ -25,33 +25,33 @@ dependencies:
|
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: activesupport
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - "
|
|
31
|
+
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
33
|
+
version: '0'
|
|
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: '
|
|
40
|
+
version: '0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: bundler
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "
|
|
45
|
+
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
47
|
+
version: '0'
|
|
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: '0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: minitest
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -94,6 +94,62 @@ dependencies:
|
|
|
94
94
|
- - ">="
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: '0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: rake
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - ">="
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: rubocop
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ">="
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: rubocop-fnando
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: simplecov
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - ">="
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: '0'
|
|
146
|
+
type: :development
|
|
147
|
+
prerelease: false
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - ">="
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: '0'
|
|
97
153
|
description: Allow interpolation to be performed on a object's attribute, e.g. %{user.name}
|
|
98
154
|
email:
|
|
99
155
|
- fnando.vieira@gmail.com
|
|
@@ -101,7 +157,9 @@ executables: []
|
|
|
101
157
|
extensions: []
|
|
102
158
|
extra_rdoc_files: []
|
|
103
159
|
files:
|
|
160
|
+
- ".github/FUNDING.yml"
|
|
104
161
|
- ".gitignore"
|
|
162
|
+
- ".rubocop.yml"
|
|
105
163
|
- ".travis.yml"
|
|
106
164
|
- CODE_OF_CONDUCT.md
|
|
107
165
|
- Gemfile
|
|
@@ -116,7 +174,7 @@ homepage: https://github.com/fnando/i18n-dot_lookup
|
|
|
116
174
|
licenses:
|
|
117
175
|
- MIT
|
|
118
176
|
metadata: {}
|
|
119
|
-
post_install_message:
|
|
177
|
+
post_install_message:
|
|
120
178
|
rdoc_options: []
|
|
121
179
|
require_paths:
|
|
122
180
|
- lib
|
|
@@ -124,16 +182,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
124
182
|
requirements:
|
|
125
183
|
- - ">="
|
|
126
184
|
- !ruby/object:Gem::Version
|
|
127
|
-
version:
|
|
185
|
+
version: 2.5.0
|
|
128
186
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
187
|
requirements:
|
|
130
188
|
- - ">="
|
|
131
189
|
- !ruby/object:Gem::Version
|
|
132
190
|
version: '0'
|
|
133
191
|
requirements: []
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
signing_key:
|
|
192
|
+
rubygems_version: 3.1.2
|
|
193
|
+
signing_key:
|
|
137
194
|
specification_version: 4
|
|
138
195
|
summary: Allow interpolation to be performed on a object's attribute, e.g. %{user.name}
|
|
139
196
|
test_files: []
|