i18n_alchemy 0.2.2 → 0.4.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/CHANGELOG.md +27 -0
- data/README.md +3 -3
- data/lib/i18n_alchemy.rb +1 -1
- data/lib/i18n_alchemy/attributes_parsing.rb +19 -4
- data/lib/i18n_alchemy/date_parser.rb +1 -1
- data/lib/i18n_alchemy/numeric_parser.rb +1 -1
- data/lib/i18n_alchemy/proxy.rb +12 -5
- data/lib/i18n_alchemy/version.rb +1 -1
- data/test/action_view_test.rb +7 -7
- data/test/custom_parsers/my_custom_date_parser.rb +2 -2
- data/test/db/test_schema.rb +2 -2
- data/test/i18n_alchemy/proxy/attributes_parsing_test.rb +37 -19
- data/test/i18n_alchemy/proxy_test.rb +2 -1
- data/test/models/product.rb +4 -4
- data/test/models/supplier.rb +1 -1
- data/test/models/user.rb +1 -1
- data/test/test_helper.rb +11 -1
- metadata +24 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2b448e3b19d00c30389b8fafe839c2840ba90b264022108c8f9e356e9441f2e3
|
4
|
+
data.tar.gz: 170fd843fe6f65d8a411c0362121e52ade33ca549a11ec028fb89026bc4216b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3fa185c470cd2ce647f6c22d6e1f296681a940691181b8dda3f47dfdce93a7aaf7a7c9e0d2d7a62c47c38528bfb3b802d15e0dabed1d9d4c9dd8b081537df18
|
7
|
+
data.tar.gz: 494b9cb4974f6bc8a171c389498e21506be614200a751b097a4a5cf8e2e30d9f14f7b81b4c0931d50596bc3d5ccb750608bc5fb986024a48819c793f0a5f2e0b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,30 @@
|
|
1
|
+
## v0.4.0 - 2020-03-30
|
2
|
+
|
3
|
+
* Ruby 3.0 support
|
4
|
+
* Rails 6.1 support
|
5
|
+
* `update_attributes` and `update_attributes!` are not available through the localized proxy in Rails 6.1, following their removal from Rails.
|
6
|
+
|
7
|
+
## v0.3.1 - 2020-02-11
|
8
|
+
|
9
|
+
* Ruby 2.6 & 2.7 support (no changes required)
|
10
|
+
* Rails 6 support ([@mayordwells](https://github.com/mayordwells))
|
11
|
+
* Add support for `update`/`update!` Active Record methods ([@tbk303](https://github.com/tbk303))
|
12
|
+
|
13
|
+
## v0.3.0 - 2018-09-08
|
14
|
+
|
15
|
+
* Update I18n dependency to require >= 0.7, allowing to install more recent versions ([@nazarhussain](https://github.com/nazarhussain))
|
16
|
+
* Rails 5.2 support ([@sega](https://github.com/sega))
|
17
|
+
* Ruby 2.5 support (no changes required)
|
18
|
+
* Drop support to Rails 3.2 and Ruby 1.9.3/2.0.x/2.1.x
|
19
|
+
|
20
|
+
## v0.2.4 - 2017-08-03
|
21
|
+
|
22
|
+
* Rails 5.1 and Ruby 2.4 support
|
23
|
+
|
24
|
+
## v0.2.3 - 2016-12-19
|
25
|
+
|
26
|
+
* Rails 5.0 support ([@rodrigoulisses](https://github.com/rodrigoulisses))
|
27
|
+
|
1
28
|
## v0.2.2 - 2015-08-26
|
2
29
|
|
3
30
|
* Rails 4.2 and Ruby 2.2 support (Rails 4.2.1+ support by [@Danielpk](https://github.com/Danielpk))
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
## I18nAlchemy
|
2
2
|
|
3
|
-
[](http://badge.fury.io/rb/i18n_alchemy)
|
4
|
+
[](http://travis-ci.org/carlosantoniodasilva/i18n_alchemy)
|
5
|
+
[](https://codeclimate.com/github/carlosantoniodasilva/i18n_alchemy)
|
6
6
|
|
7
7
|
I18n date/number parsing/localization
|
8
8
|
|
data/lib/i18n_alchemy.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
module I18n
|
2
2
|
module Alchemy
|
3
|
+
def self.support_update_attributes?
|
4
|
+
# `update_attributes` and `update_attributes!` were removed in Rails 6.1.
|
5
|
+
ActiveSupport.version < Gem::Version.new("6.1")
|
6
|
+
end
|
7
|
+
|
3
8
|
module AttributesParsing
|
4
9
|
def attributes=(attributes)
|
5
10
|
@target.attributes = parse_attributes(attributes)
|
@@ -9,12 +14,22 @@ module I18n
|
|
9
14
|
@target.assign_attributes(parse_attributes(attributes))
|
10
15
|
end
|
11
16
|
|
12
|
-
|
13
|
-
|
17
|
+
if I18n::Alchemy.support_update_attributes?
|
18
|
+
def update_attributes(attributes)
|
19
|
+
@target.update_attributes(parse_attributes(attributes))
|
20
|
+
end
|
21
|
+
|
22
|
+
def update_attributes!(attributes)
|
23
|
+
@target.update_attributes!(parse_attributes(attributes))
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def update(attributes)
|
28
|
+
@target.update(parse_attributes(attributes))
|
14
29
|
end
|
15
30
|
|
16
|
-
def
|
17
|
-
@target.
|
31
|
+
def update!(attributes)
|
32
|
+
@target.update!(parse_attributes(attributes))
|
18
33
|
end
|
19
34
|
|
20
35
|
def update_attribute(attribute, value)
|
data/lib/i18n_alchemy/proxy.rb
CHANGED
@@ -57,8 +57,15 @@ module I18n
|
|
57
57
|
# Delegate all method calls that are not translated to the target object.
|
58
58
|
# As the proxy does not have any other method, there is no need to
|
59
59
|
# override :respond_to, just delegate it to the target as well.
|
60
|
-
|
61
|
-
|
60
|
+
if ::RUBY_VERSION >= "2.7"
|
61
|
+
def method_missing(*args, **kwargs, &block)
|
62
|
+
@target.send(*args, **kwargs, &block)
|
63
|
+
end
|
64
|
+
ruby2_keywords :method_missing
|
65
|
+
else
|
66
|
+
def method_missing(*args, &block)
|
67
|
+
@target.send(*args, &block)
|
68
|
+
end
|
62
69
|
end
|
63
70
|
|
64
71
|
private
|
@@ -128,12 +135,12 @@ module I18n
|
|
128
135
|
end
|
129
136
|
|
130
137
|
def detect_parser_from_column(column)
|
131
|
-
detect_parser(column.
|
138
|
+
detect_parser(column.type)
|
132
139
|
end
|
133
140
|
|
134
141
|
def detect_parser(type_or_parser)
|
135
142
|
case type_or_parser
|
136
|
-
when :number
|
143
|
+
when :float, :decimal, :number
|
137
144
|
NumericParser
|
138
145
|
when :date
|
139
146
|
DateParser
|
@@ -146,7 +153,7 @@ module I18n
|
|
146
153
|
|
147
154
|
def skip_column?(column_name)
|
148
155
|
column_name == @target_class.primary_key ||
|
149
|
-
column_name.
|
156
|
+
column_name.end_with?("_id") ||
|
150
157
|
@localized_attributes.key?(column_name)
|
151
158
|
end
|
152
159
|
end
|
data/lib/i18n_alchemy/version.rb
CHANGED
data/test/action_view_test.rb
CHANGED
@@ -3,13 +3,13 @@ require "action_pack"
|
|
3
3
|
|
4
4
|
class ActionViewTest < I18n::Alchemy::TestCase
|
5
5
|
def setup
|
6
|
-
@template = ActionView::Base.new
|
6
|
+
@template = ActionView::Base.respond_to?(:empty) ? ActionView::Base.empty : ActionView::Base.new
|
7
7
|
@product = Product.new(
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
8
|
+
name: "Potato",
|
9
|
+
quantity: 10,
|
10
|
+
price: 1.99,
|
11
|
+
released_at: Date.new(2011, 2, 28),
|
12
|
+
last_sale_at: Time.mktime(2011, 2, 28, 13, 25, 30)
|
13
13
|
)
|
14
14
|
@localized = @product.localized
|
15
15
|
|
@@ -48,7 +48,7 @@ class ActionViewTest < I18n::Alchemy::TestCase
|
|
48
48
|
assert_includes [
|
49
49
|
text_input_sorted_attributes(attribute, value),
|
50
50
|
text_input_unsorted_attributes(attribute, value)
|
51
|
-
], @template.text_field(:product, attribute, :
|
51
|
+
], @template.text_field(:product, attribute, object: @localized)
|
52
52
|
end
|
53
53
|
|
54
54
|
def text_input_sorted_attributes(attribute_name, value)
|
@@ -3,12 +3,12 @@ module MyCustomDateParser
|
|
3
3
|
extend self
|
4
4
|
|
5
5
|
def localize(value)
|
6
|
-
I18n.localize value, :
|
6
|
+
I18n.localize value, format: :custom
|
7
7
|
end
|
8
8
|
|
9
9
|
protected
|
10
10
|
|
11
11
|
def i18n_format
|
12
|
-
I18n.t(:custom, :
|
12
|
+
I18n.t(:custom, scope: [:date, :formats])
|
13
13
|
end
|
14
14
|
end
|
data/test/db/test_schema.rb
CHANGED
@@ -4,7 +4,7 @@ class ProxyAttributesParsingTest < I18n::Alchemy::ProxyTestCase
|
|
4
4
|
# Attributes
|
5
5
|
def test_initializes_proxy_with_attributes
|
6
6
|
@localized = @product.localized(
|
7
|
-
:
|
7
|
+
name: "Banana", price: "0,99", released_at: "28/02/2011")
|
8
8
|
|
9
9
|
assert_equal 0.99, @product.price
|
10
10
|
assert_equal "0,99", @localized.price
|
@@ -14,7 +14,7 @@ class ProxyAttributesParsingTest < I18n::Alchemy::ProxyTestCase
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def test_assign_attributes
|
17
|
-
@localized.assign_attributes(:
|
17
|
+
@localized.assign_attributes(price: '1,99')
|
18
18
|
assert_equal "1,99", @localized.price
|
19
19
|
end
|
20
20
|
|
@@ -31,7 +31,7 @@ class ProxyAttributesParsingTest < I18n::Alchemy::ProxyTestCase
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def test_attributes_assignment
|
34
|
-
@localized.attributes = { :
|
34
|
+
@localized.attributes = { price: '1,99' }
|
35
35
|
assert_equal "1,99", @localized.price
|
36
36
|
end
|
37
37
|
|
@@ -41,27 +41,45 @@ class ProxyAttributesParsingTest < I18n::Alchemy::ProxyTestCase
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
def
|
45
|
-
@localized.
|
44
|
+
def test_update
|
45
|
+
@localized.update(price: '2,88')
|
46
46
|
assert_equal '2,88', @localized.price
|
47
47
|
assert_equal 2.88, @product.reload.price
|
48
48
|
end
|
49
49
|
|
50
|
-
def
|
50
|
+
def test_update_does_not_change_given_attributes_hash
|
51
51
|
assert_attributes_hash_is_unchanged do |attributes|
|
52
|
-
@localized.
|
52
|
+
@localized.update(attributes)
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
def
|
57
|
-
@localized.
|
56
|
+
def test_update!
|
57
|
+
@localized.update!(price: '2,88')
|
58
58
|
assert_equal '2,88', @localized.price
|
59
59
|
assert_equal 2.88, @product.reload.price
|
60
60
|
end
|
61
61
|
|
62
|
-
def
|
62
|
+
def test_update_bang_does_not_change_given_attributes_hash
|
63
63
|
assert_attributes_hash_is_unchanged do |attributes|
|
64
|
-
@localized.
|
64
|
+
@localized.update!(attributes)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
if I18n::Alchemy.support_update_attributes?
|
69
|
+
def test_update_attributes
|
70
|
+
silence_deprecations {
|
71
|
+
@localized.update_attributes(price: '2,88')
|
72
|
+
}
|
73
|
+
assert_equal '2,88', @localized.price
|
74
|
+
assert_equal 2.88, @product.reload.price
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_update_attributes!
|
78
|
+
silence_deprecations {
|
79
|
+
@localized.update_attributes!(price: '2,88')
|
80
|
+
}
|
81
|
+
assert_equal '2,88', @localized.price
|
82
|
+
assert_equal 2.88, @product.reload.price
|
65
83
|
end
|
66
84
|
end
|
67
85
|
|
@@ -73,40 +91,40 @@ class ProxyAttributesParsingTest < I18n::Alchemy::ProxyTestCase
|
|
73
91
|
|
74
92
|
# Nested Attributes
|
75
93
|
def test_should_assign_for_nested_attributes_for_collection_association
|
76
|
-
@supplier_localized.assign_attributes(:
|
94
|
+
@supplier_localized.assign_attributes(products_attributes: [{ price: '1,99' }, { price: '2,93' }])
|
77
95
|
assert_equal 2, @supplier_localized.products.size
|
78
96
|
assert_equal '1,99', @supplier_localized.products.first.localized.price
|
79
97
|
assert_equal '2,93', @supplier_localized.products.last.localized.price
|
80
98
|
end
|
81
99
|
|
82
100
|
def test_should_assign_for_nested_attributes_passing_a_hash_for_collection_with_unique_keys
|
83
|
-
@supplier_localized.assign_attributes(:
|
101
|
+
@supplier_localized.assign_attributes(products_attributes: { '0' => { price: '2,93', _destroy: 'false' }, '1' => { price: '2,85', _destroy: 'false' }})
|
84
102
|
prices = @supplier.products.map { |p| p.localized.price }.sort
|
85
103
|
assert_equal ['2,85', '2,93'], prices
|
86
104
|
end
|
87
105
|
|
88
106
|
def test_should_assign_for_nested_attributes_for_one_to_one_association
|
89
|
-
@supplier_localized.assign_attributes(:
|
107
|
+
@supplier_localized.assign_attributes(account_attributes: { account_number: 10, total_money: '100,87' })
|
90
108
|
account = @supplier_localized.account
|
91
109
|
assert_equal '10', account.account_number.to_s
|
92
110
|
assert_equal '100,87', account.localized.total_money
|
93
111
|
end
|
94
112
|
|
95
|
-
def
|
96
|
-
@supplier_localized.
|
113
|
+
def test_update_for_nested_attributes
|
114
|
+
@supplier_localized.update(account_attributes: { total_money: '99,87' })
|
97
115
|
assert_equal '99,87', @supplier_localized.account.localized.total_money
|
98
116
|
end
|
99
117
|
|
100
118
|
def test_attributes_assignment_for_nested
|
101
|
-
@supplier_localized.attributes = {:
|
119
|
+
@supplier_localized.attributes = { account_attributes: { total_money: '88,12' }}
|
102
120
|
assert_equal '88,12', @supplier_localized.account.localized.total_money
|
103
121
|
end
|
104
122
|
|
105
123
|
private
|
106
124
|
|
107
125
|
def assert_attributes_hash_is_unchanged
|
108
|
-
attributes = { :
|
126
|
+
attributes = { quantity: 1 }
|
109
127
|
yield attributes
|
110
|
-
assert_equal({ :
|
128
|
+
assert_equal({ quantity: 1 }, attributes)
|
111
129
|
end
|
112
130
|
end
|
@@ -3,7 +3,7 @@ require "test_helper"
|
|
3
3
|
class ProxyTest < I18n::Alchemy::ProxyTestCase
|
4
4
|
def test_delegates_orm_methods_to_target_object
|
5
5
|
assert @product.new_record?
|
6
|
-
assert @localized.save!(:
|
6
|
+
assert @localized.save!(validate: false)
|
7
7
|
assert !@product.new_record?
|
8
8
|
end
|
9
9
|
|
@@ -32,6 +32,7 @@ class ProxyTest < I18n::Alchemy::ProxyTestCase
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def test_to_param
|
35
|
+
@product.id = 1
|
35
36
|
assert_equal @product.to_param, @localized.to_param
|
36
37
|
end
|
37
38
|
|
data/test/models/product.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
class Product < ActiveRecord::Base
|
2
2
|
include I18n::Alchemy
|
3
|
-
localize :total, :
|
4
|
-
localize :estimated_delivery_at, :
|
5
|
-
localize :estimated_last_comission_payment_at, :
|
6
|
-
localize :released_month, :
|
3
|
+
localize :total, using: :number
|
4
|
+
localize :estimated_delivery_at, using: :date
|
5
|
+
localize :estimated_last_comission_payment_at, using: :timestamp
|
6
|
+
localize :released_month, using: MyCustomDateParser
|
7
7
|
|
8
8
|
belongs_to :supplier
|
9
9
|
|
data/test/models/supplier.rb
CHANGED
data/test/models/user.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -9,7 +9,7 @@ begin
|
|
9
9
|
Minitest.autorun
|
10
10
|
MiniTestCase = Minitest::Test
|
11
11
|
rescue LoadError
|
12
|
-
# Rails 4.0
|
12
|
+
# Rails 4.0
|
13
13
|
require 'minitest/unit'
|
14
14
|
MiniTest::Unit.autorun
|
15
15
|
MiniTestCase = MiniTest::Unit::TestCase
|
@@ -49,5 +49,15 @@ module I18n::Alchemy
|
|
49
49
|
def teardown
|
50
50
|
I18n.locale = :en
|
51
51
|
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def silence_deprecations
|
56
|
+
old_silenced = ActiveSupport::Deprecation.silenced
|
57
|
+
ActiveSupport::Deprecation.silenced = true
|
58
|
+
yield
|
59
|
+
ensure
|
60
|
+
ActiveSupport::Deprecation.silenced = old_silenced
|
61
|
+
end
|
52
62
|
end
|
53
63
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n_alchemy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carlos Antonio da Silva
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,74 +16,74 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 4.0.0
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: '7.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 4.0.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: '7.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: i18n
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '0.
|
39
|
+
version: '0.7'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - "
|
44
|
+
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '0.
|
46
|
+
version: '0.7'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: actionpack
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 4.0.0
|
54
54
|
- - "<"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
56
|
+
version: '7.0'
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
63
|
+
version: 4.0.0
|
64
64
|
- - "<"
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version:
|
66
|
+
version: '7.0'
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: activerecord
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
71
|
- - ">="
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
73
|
+
version: 4.0.0
|
74
74
|
- - "<"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
76
|
+
version: '7.0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
83
|
+
version: 4.0.0
|
84
84
|
- - "<"
|
85
85
|
- !ruby/object:Gem::Version
|
86
|
-
version:
|
86
|
+
version: '7.0'
|
87
87
|
- !ruby/object:Gem::Dependency
|
88
88
|
name: minitest
|
89
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,14 +102,14 @@ dependencies:
|
|
102
102
|
name: rake
|
103
103
|
requirement: !ruby/object:Gem::Requirement
|
104
104
|
requirements:
|
105
|
-
- - "
|
105
|
+
- - ">="
|
106
106
|
- !ruby/object:Gem::Version
|
107
107
|
version: '10.1'
|
108
108
|
type: :development
|
109
109
|
prerelease: false
|
110
110
|
version_requirements: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
|
-
- - "
|
112
|
+
- - ">="
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '10.1'
|
115
115
|
description: I18n date/number parsing/localization
|
@@ -152,7 +152,7 @@ files:
|
|
152
152
|
homepage: ''
|
153
153
|
licenses: []
|
154
154
|
metadata: {}
|
155
|
-
post_install_message:
|
155
|
+
post_install_message:
|
156
156
|
rdoc_options: []
|
157
157
|
require_paths:
|
158
158
|
- lib
|
@@ -167,9 +167,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
167
|
- !ruby/object:Gem::Version
|
168
168
|
version: '0'
|
169
169
|
requirements: []
|
170
|
-
|
171
|
-
|
172
|
-
signing_key:
|
170
|
+
rubygems_version: 3.2.3
|
171
|
+
signing_key:
|
173
172
|
specification_version: 4
|
174
173
|
summary: I18n date/number parsing/localization
|
175
174
|
test_files:
|