i18n_alchemy 0.2.4 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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: