i18n_alchemy 0.2.4 → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ff49f5181581e9b70ec396372c921f95cd5caf8a
4
- data.tar.gz: f225925a1b10d4e9250d73ba9a840b31df7501be
2
+ SHA256:
3
+ metadata.gz: 1bc55c34e9ada128b790fe90e4917c2d1ed5a79b8ed1277d272b19ba2b7ddfaf
4
+ data.tar.gz: 94fadf745b6a0a50e4649c14489f2d5087d36b5ef9fb11daf158d437e86bebb3
5
5
  SHA512:
6
- metadata.gz: 13999f1c39272100d46ac5306efcbcbd71359472f2cf207beb37d4978701c44565e8bcf707e8b6c5d99707a1b56ea8fcc3c9092171da71044a53b64deb310625
7
- data.tar.gz: b1e26a4c9e2ac3e3d76507699329c7085e62b231ea719a40a665484a5ec5fdcaf71b1633a8d1600c70807757aedf5076f06bf38f6d353b44e09c305c921e21d3
6
+ metadata.gz: 0501ef9fedb09177f5dfcab536e5ab5cc9c838a92a6ee9ecfe5057774e2bbbc7b580381fea093aba04998d0b397fcc4d45a1cecb75fbe7c5ec7172c578004e26
7
+ data.tar.gz: f769303bd86f0e9c82145f8a0386baff7438ad8eca5b4d00c5a509734d7053b3c7375cc817976e07040f999e382ce7052901421af90d6e0c5fc7a84cb989fadc
data/CHANGELOG.md CHANGED
@@ -1,3 +1,30 @@
1
+ ## v0.5.0 - 2022-01-15
2
+
3
+ * Drop support for Ruby < 2.5
4
+ * Drop support for Rails < 5.2
5
+ * Rails 7 support (no changes required) ([@JonathanFerreira](https://github.com/JonathanFerreira))
6
+ * Ruby 3.1 support (no changes required)
7
+ * Move CI to GitHub Actions
8
+
9
+ ## v0.4.0 - 2020-03-30
10
+
11
+ * Ruby 3.0 support
12
+ * Rails 6.1 support
13
+ * `update_attributes` and `update_attributes!` are not available through the localized proxy in Rails 6.1, following their removal from Rails.
14
+
15
+ ## v0.3.1 - 2020-02-11
16
+
17
+ * Ruby 2.6 & 2.7 support (no changes required)
18
+ * Rails 6 support ([@mayordwells](https://github.com/mayordwells))
19
+ * Add support for `update`/`update!` Active Record methods ([@tbk303](https://github.com/tbk303))
20
+
21
+ ## v0.3.0 - 2018-09-08
22
+
23
+ * Update I18n dependency to require >= 0.7, allowing to install more recent versions ([@nazarhussain](https://github.com/nazarhussain))
24
+ * Rails 5.2 support ([@sega](https://github.com/sega))
25
+ * Ruby 2.5 support (no changes required)
26
+ * Drop support to Rails 3.2 and Ruby 1.9.3/2.0.x/2.1.x
27
+
1
28
  ## v0.2.4 - 2017-08-03
2
29
 
3
30
  * Rails 5.1 and Ruby 2.4 support
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  ## I18nAlchemy
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/i18n_alchemy.png)](http://badge.fury.io/rb/i18n_alchemy)
4
- [![Build Status](https://api.travis-ci.org/carlosantoniodasilva/i18n_alchemy.png?branch=master)](http://travis-ci.org/carlosantoniodasilva/i18n_alchemy)
5
- [![Code Climate](https://codeclimate.com/github/carlosantoniodasilva/i18n_alchemy.png)](https://codeclimate.com/github/carlosantoniodasilva/i18n_alchemy)
3
+ [![Gem Version](https://badge.fury.io/rb/i18n_alchemy.svg)](http://badge.fury.io/rb/i18n_alchemy)
4
+ [![Build Status](https://api.travis-ci.org/carlosantoniodasilva/i18n_alchemy.svg?branch=master)](http://travis-ci.org/carlosantoniodasilva/i18n_alchemy)
5
+ [![Code Climate](https://codeclimate.com/github/carlosantoniodasilva/i18n_alchemy.svg)](https://codeclimate.com/github/carlosantoniodasilva/i18n_alchemy)
6
6
 
7
7
  I18n date/number parsing/localization
8
8
 
@@ -151,7 +151,7 @@ And then just configure the attribute you want to use with this new parser:
151
151
  ```ruby
152
152
  class Product < ActiveRecord::Base
153
153
  include I18n::Alchemy
154
- custom_parsers :released_month => MyCustomDateParser
154
+ localize :released_month, :using => MyCustomDateParser
155
155
  end
156
156
  ```
157
157
 
@@ -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
- def update_attributes(attributes)
13
- @target.update_attributes(parse_attributes(attributes))
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 update_attributes!(attributes)
17
- @target.update_attributes!(parse_attributes(attributes))
31
+ def update!(attributes)
32
+ @target.update!(parse_attributes(attributes))
18
33
  end
19
34
 
20
35
  def update_attribute(attribute, value)
@@ -28,7 +28,7 @@ module I18n
28
28
  end
29
29
 
30
30
  def i18n_format
31
- I18n.t(:default, :scope => [i18n_scope, :formats])
31
+ I18n.t(:default, scope: [i18n_scope, :formats])
32
32
  end
33
33
 
34
34
  def i18n_scope
@@ -34,7 +34,7 @@ module I18n
34
34
  end
35
35
 
36
36
  def translate(key)
37
- I18n.t(key, :scope => :"number.format")
37
+ I18n.t(key, scope: :"number.format")
38
38
  end
39
39
 
40
40
  def valid_for_localization?(value)
@@ -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
- def method_missing(*args, &block)
61
- @target.send(*args, &block)
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
@@ -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.ends_with?("_id") ||
156
+ column_name.end_with?("_id") ||
150
157
  @localized_attributes.key?(column_name)
151
158
  end
152
159
  end
@@ -1,5 +1,5 @@
1
1
  module I18n
2
2
  module Alchemy
3
- VERSION = "0.2.4"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
data/lib/i18n_alchemy.rb CHANGED
@@ -20,7 +20,7 @@ module I18n
20
20
 
21
21
  included do
22
22
  class_attribute :localized_methods,
23
- :instance_reader => false, :instance_writer => false
23
+ instance_reader: false, instance_writer: false
24
24
  self.localized_methods = {}
25
25
  end
26
26
 
@@ -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
- :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)
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
 
@@ -45,22 +45,9 @@ class ActionViewTest < I18n::Alchemy::TestCase
45
45
  # Since we do not want to rely on Rails dom-assertions (neither from the
46
46
  # framework nor from the extracted gem), we build our own :).
47
47
  def assert_same_text_input(attribute, value)
48
- assert_includes [
49
- text_input_sorted_attributes(attribute, value),
50
- text_input_unsorted_attributes(attribute, value)
51
- ], @template.text_field(:product, attribute, :object => @localized)
52
- end
53
-
54
- def text_input_sorted_attributes(attribute_name, value)
55
- size = rails4? ? ' ' : ' size="30" '
56
- %Q[<input id="product_#{attribute_name}" name="product[#{attribute_name}]"#{size}type="text" value="#{value}" />]
57
- end
58
-
59
- def text_input_unsorted_attributes(attribute_name, value)
60
- %Q[<input type="text" value="#{value}" name="product[#{attribute_name}]" id="product_#{attribute_name}" />]
61
- end
62
-
63
- def rails4?
64
- ActionPack::VERSION::STRING.start_with? "4"
48
+ assert_equal(
49
+ %Q[<input type="text" value="#{value}" name="product[#{attribute}]" id="product_#{attribute}" />],
50
+ @template.text_field(:product, attribute, object: @localized)
51
+ )
65
52
  end
66
53
  end
@@ -3,12 +3,12 @@ module MyCustomDateParser
3
3
  extend self
4
4
 
5
5
  def localize(value)
6
- I18n.localize value, :format => :custom
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, :scope => [:date, :formats])
12
+ I18n.t(:custom, scope: [:date, :formats])
13
13
  end
14
14
  end
@@ -1,6 +1,6 @@
1
1
  ActiveRecord::Base.establish_connection(
2
- :adapter => "sqlite3",
3
- :database => ":memory:"
2
+ adapter: "sqlite3",
3
+ database: ":memory:"
4
4
  )
5
5
 
6
6
  ActiveRecord::Schema.define do
@@ -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
- :name => "Banana", :price => "0,99", :released_at => "28/02/2011")
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(:price => '1,99')
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 = { :price => '1,99' }
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 test_update_attributes
45
- @localized.update_attributes(:price => '2,88')
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 test_update_attributes_does_not_change_given_attributes_hash
50
+ def test_update_does_not_change_given_attributes_hash
51
51
  assert_attributes_hash_is_unchanged do |attributes|
52
- @localized.update_attributes(attributes)
52
+ @localized.update(attributes)
53
53
  end
54
54
  end
55
55
 
56
- def test_update_attributes!
57
- @localized.update_attributes!(:price => '2,88')
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 test_update_attributes_bang_does_not_change_given_attributes_hash
62
+ def test_update_bang_does_not_change_given_attributes_hash
63
63
  assert_attributes_hash_is_unchanged do |attributes|
64
- @localized.update_attributes!(attributes)
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(:products_attributes => [{:price => '1,99'}, {:price => '2,93'}])
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(:products_attributes => {"0" => {:price => '2,93', "_destroy"=>"false"}, "1" => {:price => '2,85', "_destroy" => "false"}})
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(:account_attributes => {:account_number => 10, :total_money => '100,87'})
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 test_update_attributes_for_nested_attributes
96
- @supplier_localized.update_attributes(:account_attributes => {:total_money => '99,87'})
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 = {:account_attributes => {:total_money => '88,12'}}
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 = { :quantity => 1 }
126
+ attributes = { quantity: 1 }
109
127
  yield attributes
110
- assert_equal({ :quantity => 1 }, attributes)
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!(:name => "foo", :price => 1.99)
6
+ assert @localized.save!(validate: false)
7
7
  assert !@product.new_record?
8
8
  end
9
9
 
@@ -1,9 +1,9 @@
1
1
  class Product < ActiveRecord::Base
2
2
  include I18n::Alchemy
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
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
 
@@ -9,5 +9,5 @@ class Supplier < ActiveRecord::Base
9
9
  end
10
10
 
11
11
  class AnotherSupplier < Supplier
12
- localize :created_at, :using => :timestamp
12
+ localize :created_at, using: :timestamp
13
13
  end
data/test/models/user.rb CHANGED
@@ -2,5 +2,5 @@ class User
2
2
  include I18n::Alchemy
3
3
  attr_accessor :created_at
4
4
 
5
- localize :created_at, :using => :date
5
+ localize :created_at, using: :date
6
6
  end
data/test/test_helper.rb CHANGED
@@ -2,18 +2,9 @@ require "rubygems"
2
2
  require "bundler/setup"
3
3
  Bundler.require :test
4
4
 
5
- begin
6
- # Rails 4.1
7
- require 'minitest'
8
- require 'minitest/unit'
9
- Minitest.autorun
10
- MiniTestCase = Minitest::Test
11
- rescue LoadError
12
- # Rails 4.0/3.2
13
- require 'minitest/unit'
14
- MiniTest::Unit.autorun
15
- MiniTestCase = MiniTest::Unit::TestCase
16
- end
5
+ require 'minitest'
6
+ require 'minitest/unit'
7
+ Minitest.autorun
17
8
 
18
9
  require "i18n_alchemy"
19
10
  require "action_view"
@@ -31,7 +22,7 @@ Dir["test/custom_parsers/*.rb"].each { |file| require File.expand_path(file) }
31
22
  Dir["test/models/*.rb"].each { |file| require File.expand_path(file) }
32
23
 
33
24
  module I18n::Alchemy
34
- class TestCase < MiniTestCase
25
+ class TestCase < Minitest::Test
35
26
  end
36
27
 
37
28
  class ProxyTestCase < TestCase
@@ -49,5 +40,15 @@ module I18n::Alchemy
49
40
  def teardown
50
41
  I18n.locale = :en
51
42
  end
43
+
44
+ private
45
+
46
+ def silence_deprecations
47
+ old_silenced = ActiveSupport::Deprecation.silenced
48
+ ActiveSupport::Deprecation.silenced = true
49
+ yield
50
+ ensure
51
+ ActiveSupport::Deprecation.silenced = old_silenced
52
+ end
52
53
  end
53
54
  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.2.4
4
+ version: 0.5.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: 2017-08-04 00:00:00.000000000 Z
11
+ date: 2022-01-15 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: 3.2.0
19
+ version: 4.0.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 5.2.0
22
+ version: '8.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: 3.2.0
29
+ version: 4.0.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 5.2.0
32
+ version: '8.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.6'
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.6'
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: 3.2.0
53
+ version: 4.0.0
54
54
  - - "<"
55
55
  - !ruby/object:Gem::Version
56
- version: 5.2.0
56
+ version: '8.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: 3.2.0
63
+ version: 4.0.0
64
64
  - - "<"
65
65
  - !ruby/object:Gem::Version
66
- version: 5.2.0
66
+ version: '8.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: 3.2.0
73
+ version: 4.0.0
74
74
  - - "<"
75
75
  - !ruby/object:Gem::Version
76
- version: 5.2.0
76
+ version: '8.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: 3.2.0
83
+ version: 4.0.0
84
84
  - - "<"
85
85
  - !ruby/object:Gem::Version
86
- version: 5.2.0
86
+ version: '8.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
@@ -150,9 +150,10 @@ files:
150
150
  - test/models_test.rb
151
151
  - test/test_helper.rb
152
152
  homepage: ''
153
- licenses: []
153
+ licenses:
154
+ - MIT
154
155
  metadata: {}
155
- post_install_message:
156
+ post_install_message:
156
157
  rdoc_options: []
157
158
  require_paths:
158
159
  - lib
@@ -160,16 +161,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
160
161
  requirements:
161
162
  - - ">="
162
163
  - !ruby/object:Gem::Version
163
- version: '0'
164
+ version: 2.5.0
164
165
  required_rubygems_version: !ruby/object:Gem::Requirement
165
166
  requirements:
166
167
  - - ">="
167
168
  - !ruby/object:Gem::Version
168
169
  version: '0'
169
170
  requirements: []
170
- rubyforge_project: i18n_alchemy
171
- rubygems_version: 2.6.12
172
- signing_key:
171
+ rubygems_version: 3.3.3
172
+ signing_key:
173
173
  specification_version: 4
174
174
  summary: I18n date/number parsing/localization
175
175
  test_files: