enum_ext 0.3.0 → 0.4.4

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: 8d87b2abcd1fc85e6b40920b0623a190a8b6ae8e
4
- data.tar.gz: cfdcb6362c984922ef6047a4ec719363312d8b26
2
+ SHA256:
3
+ metadata.gz: 31b1c2e892139a6c351a6eceac3680a3f564175e74a590030923866e2ea1e23c
4
+ data.tar.gz: 43edecda5dbc4f647ab1e405647ae31dbf7c671d9fd16a17a65c6d922bee4dc4
5
5
  SHA512:
6
- metadata.gz: e921603dd1328763efef7dbd5ac36e335037d4d381e4361c3c5dcf2453503e326876a42935ad679e257e6109e6d74b5aee49782047835eb70f3880c34ef76ff2
7
- data.tar.gz: f6ecf63202ba792af34678ecae8f3bc73ca051894e931aebe21b2eb1de4887577f4728e06727a6e814c318a761b2b52bfdb41c8b47226abce5682db4d1676c6f
6
+ metadata.gz: 86ee6244b2b81a2d70edae5c5675322feac5c9a7e69b7f141c0ce11f9f4a8eacc10f6ae16b6e5e4ed87f4852dd9a59b9120291e7c86456880908e9afbe4b8f32
7
+ data.tar.gz: 8b2468b334499d88c470b20d397b531ecb39344101c8366faa031ad1e58a70f0cebef70f4479aa67c8c7bd1670cfb8d9dbbf86eb9cdaee6270ea5f0a9f0ad14f
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.4.4
5
+ - 2.5.1
6
+ - 2.3.7
data/CHANGELOG.md ADDED
@@ -0,0 +1,16 @@
1
+ # 0.4.4
2
+ * ext_enum_sets now can be executed without 'scope' definition present on the base class,
3
+ for instance you can now use with StoreModel's
4
+
5
+ # 0.4.3
6
+ * ext_enum_sets now can go without options just to define with and without scopes
7
+
8
+ # 0.4.2
9
+ * bugfix for localize_enum multiple call
10
+ * test added for 0.4.1 ver funcitonality ( multiple times humanize_enum calls )
11
+ * all assert( a == b ) replaced with assert_equal(a,b)
12
+
13
+ # 0.4.1
14
+ * security dependency issues resolved
15
+ * activerecord version raised
16
+ * humanize_enum could be called multiple times all definitions will be merged, i.e. there is no need to define all localizations in one place at once
data/Gemfile.lock CHANGED
@@ -1,82 +1,87 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- enum_ext (0.3.0)
5
- activerecord (>= 4.1)
4
+ enum_ext (0.4.4)
5
+ activerecord (>= 5.2.4.3)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- actionpack (5.0.2)
11
- actionview (= 5.0.2)
12
- activesupport (= 5.0.2)
13
- rack (~> 2.0)
14
- rack-test (~> 0.6.3)
10
+ actionpack (6.0.3.4)
11
+ actionview (= 6.0.3.4)
12
+ activesupport (= 6.0.3.4)
13
+ rack (~> 2.0, >= 2.0.8)
14
+ rack-test (>= 0.6.3)
15
15
  rails-dom-testing (~> 2.0)
16
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
17
- actionview (5.0.2)
18
- activesupport (= 5.0.2)
16
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
17
+ actionview (6.0.3.4)
18
+ activesupport (= 6.0.3.4)
19
19
  builder (~> 3.1)
20
- erubis (~> 2.7.0)
20
+ erubi (~> 1.4)
21
21
  rails-dom-testing (~> 2.0)
22
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
23
- activemodel (5.0.2)
24
- activesupport (= 5.0.2)
25
- activerecord (5.0.2)
26
- activemodel (= 5.0.2)
27
- activesupport (= 5.0.2)
28
- arel (~> 7.0)
29
- activesupport (5.0.2)
22
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
23
+ activemodel (6.0.3.4)
24
+ activesupport (= 6.0.3.4)
25
+ activerecord (6.0.3.4)
26
+ activemodel (= 6.0.3.4)
27
+ activesupport (= 6.0.3.4)
28
+ activesupport (6.0.3.4)
30
29
  concurrent-ruby (~> 1.0, >= 1.0.2)
31
- i18n (~> 0.7)
30
+ i18n (>= 0.7, < 2)
32
31
  minitest (~> 5.1)
33
32
  tzinfo (~> 1.1)
34
- arel (7.1.4)
35
- builder (3.2.3)
36
- concurrent-ruby (1.0.5)
37
- erubis (2.7.0)
38
- i18n (0.8.1)
39
- loofah (2.0.3)
33
+ zeitwerk (~> 2.2, >= 2.2.2)
34
+ builder (3.2.4)
35
+ byebug (11.1.3)
36
+ concurrent-ruby (1.1.7)
37
+ crass (1.0.6)
38
+ erubi (1.10.0)
39
+ i18n (1.8.5)
40
+ concurrent-ruby (~> 1.0)
41
+ loofah (2.8.0)
42
+ crass (~> 1.0.2)
40
43
  nokogiri (>= 1.5.9)
41
- method_source (0.8.2)
42
- mini_portile2 (2.1.0)
43
- minitest (5.8.3)
44
- nokogiri (1.7.1)
45
- mini_portile2 (~> 2.1.0)
46
- rack (2.0.1)
47
- rack-test (0.6.3)
48
- rack (>= 1.0)
49
- rails-dom-testing (2.0.2)
50
- activesupport (>= 4.2.0, < 6.0)
51
- nokogiri (~> 1.6)
52
- rails-html-sanitizer (1.0.3)
53
- loofah (~> 2.0)
54
- rails-i18n (5.0.3)
55
- i18n (~> 0.7)
56
- railties (~> 5.0)
57
- railties (5.0.2)
58
- actionpack (= 5.0.2)
59
- activesupport (= 5.0.2)
44
+ method_source (1.0.0)
45
+ mini_portile2 (2.4.0)
46
+ minitest (5.14.2)
47
+ nokogiri (1.10.10)
48
+ mini_portile2 (~> 2.4.0)
49
+ rack (2.2.3)
50
+ rack-test (1.1.0)
51
+ rack (>= 1.0, < 3)
52
+ rails-dom-testing (2.0.3)
53
+ activesupport (>= 4.2.0)
54
+ nokogiri (>= 1.6)
55
+ rails-html-sanitizer (1.3.0)
56
+ loofah (~> 2.3)
57
+ rails-i18n (6.0.0)
58
+ i18n (>= 0.7, < 2)
59
+ railties (>= 6.0.0, < 7)
60
+ railties (6.0.3.4)
61
+ actionpack (= 6.0.3.4)
62
+ activesupport (= 6.0.3.4)
60
63
  method_source
61
64
  rake (>= 0.8.7)
62
- thor (>= 0.18.1, < 2.0)
63
- rake (10.4.2)
64
- sqlite3 (1.3.13)
65
- thor (0.19.4)
65
+ thor (>= 0.20.3, < 2.0)
66
+ rake (13.0.1)
67
+ sqlite3 (1.4.2)
68
+ thor (1.0.1)
66
69
  thread_safe (0.3.6)
67
- tzinfo (1.2.3)
70
+ tzinfo (1.2.8)
68
71
  thread_safe (~> 0.1)
72
+ zeitwerk (2.4.2)
69
73
 
70
74
  PLATFORMS
71
75
  ruby
72
76
 
73
77
  DEPENDENCIES
74
- bundler (~> 1.11)
78
+ bundler (>= 1.11)
79
+ byebug
75
80
  enum_ext!
76
81
  minitest
77
82
  rails-i18n (>= 4)
78
- rake (~> 10.0)
83
+ rake (>= 10.0)
79
84
  sqlite3
80
85
 
81
86
  BUNDLED WITH
82
- 1.14.6
87
+ 2.1.4
data/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # EnumExt
2
2
 
3
- EnumExt extends rails enum adding localization/translation and it's helpers, mass-assign on scopes with bang, advanced sets logic over existing.
3
+ EnumExt extends rails enum with localization/translation and it's helpers, mass-assign on scopes with bang, advanced sets logic over existing enum.
4
4
 
5
5
  ## Installation
6
6
 
7
7
  Add this line to your application's Gemfile:
8
8
 
9
9
  ```ruby
10
- gem 'enum_ext', '~> 0.2'
10
+ gem 'enum_ext', '~> 0.3'
11
11
  ```
12
12
 
13
13
  And then execute:
@@ -19,7 +19,8 @@ Or install it yourself as:
19
19
  $ gem install enum_ext
20
20
 
21
21
  ## Usage
22
- To use enum extension extend main model class with EnumExt module, and extend enum the way you need:
22
+ To use enum extension extend main model class with EnumExt module,
23
+ and customize your enums the way you need:
23
24
 
24
25
  class SomeModel
25
26
  extend EnumExt
@@ -64,10 +65,10 @@ Or install it yourself as:
64
65
  end
65
66
  ```
66
67
 
67
- This call adds to instance:
68
+ This humanize_enum adds to instance:
68
69
  - t_in_cart, t_paid, t_ready_for_shipment
69
70
 
70
- adds to class:
71
+ and to class:
71
72
  - t_statuses - as given or generated values
72
73
  - t_statuses_options - translated enum values options for select input
73
74
  - t_statuses_options_i - same as above but use int values with translations works for ActiveAdmin filters for instance
@@ -103,6 +104,8 @@ Or install it yourself as:
103
104
  request.t_status # >> "paid 3 dollars"
104
105
  Request.t_statuses # >> { in_cart: -> { I18n.t("request.status.in_cart") }, .... }
105
106
  ```
107
+
108
+ Could be called multiple times, all humanization definitions will be merged under the hood.
106
109
 
107
110
  ### Translate (translate_enum)
108
111
 
@@ -140,21 +143,23 @@ Defines method enum_name_i shortcut for Model.enum_names[elem.enum_name]
140
143
  in_warehouse: [:ready_for_shipment] # this just for superposition example below
141
144
  }
142
145
  ```
143
-
144
- it will generate:
145
- instance:
146
- methods: delivery_set?, in_warehouse?
147
- class:
148
- named scopes: delivery_set, in_warehouse
149
- parametrized scopes: with_statuses, without_statuses
150
- class helpers:
151
- - delivery_set_statuses (=[:ready_for_shipment, :on_delivery, :delivered] ), in_warehouse_statuses
152
- - delivery_set_statuses_i (= [3,4,5]), in_warehouse_statuses_i (=[3])
153
- class translation helpers ( started with t_... )
154
- for select inputs purposes:
155
- - t_delivery_set_statuses_options (= [['translation or humanization', :ready_for_shipment] ...])
156
- same as above but with integer as value ( for example to use in Active admin filters )
157
- - t_delivery_set_statuses_options_i (= [['translation or humanization', 3] ...])
146
+ it will generate:
147
+ ```
148
+ instance:
149
+ - methods: delivery_set?, in_warehouse?
150
+
151
+ class:
152
+ - named scopes: delivery_set, in_warehouse
153
+ - parametrized scopes: with_statuses, without_statuses
154
+ class helpers:
155
+ - delivery_set_statuses (=[:ready_for_shipment, :on_delivery, :delivered] ), in_warehouse_statuses
156
+ - delivery_set_statuses_i (= [3,4,5]), in_warehouse_statuses_i (=[3])
157
+
158
+ class translation helpers ( started with t_... ):
159
+ - t_delivery_set_statuses_options (= [['translation or humanization', :ready_for_shipment] ...] ) for select inputs purposes
160
+ - t_delivery_set_statuses_options_i (= [['translation or humanization', 3] ...]) same as above but with integer as value ( for example to use in Active admin filters )
161
+ ```
162
+
158
163
  ```
159
164
  Console:
160
165
  request.on_delivery!
@@ -189,7 +194,7 @@ Defines method enum_name_i shortcut for Model.enum_names[elem.enum_name]
189
194
  some_scope.update_all(status: Request.statuses[:new_status], update_at: Time.now)
190
195
  ```
191
196
  If you need callbacks you can do like this: some_scope.each(&:new_stat!) but if you don't need callbacks and you
192
- has hundreds and thousands of records to change at once you need update_all
197
+ have hundreds and thousands of records to change at once you need update_all
193
198
 
194
199
  ```
195
200
  mass_assign_enum( :status )
@@ -204,8 +209,6 @@ Defines method enum_name_i shortcut for Model.enum_names[elem.enum_name]
204
209
  request1.paid? # >> true
205
210
  request2.paid? # >> true
206
211
  request1.updated_at # >> ~ Time.now
207
- defined?(Request::MassAssignEnum) # >> true
208
-
209
212
 
210
213
  order.requests.already_paid.count # >> N
211
214
  order.requests.delivered.count # >> M
@@ -214,8 +217,6 @@ Defines method enum_name_i shortcut for Model.enum_names[elem.enum_name]
214
217
  order.requests.delivered.count # >> N + M
215
218
  ```
216
219
 
217
-
218
-
219
220
  ## Tests
220
221
  rake test
221
222
 
data/enum_ext.gemspec CHANGED
@@ -19,11 +19,12 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency 'activerecord', '>=4.1'
22
+ spec.add_dependency 'activerecord', ">= 5.2.4.3"
23
23
 
24
24
  spec.add_development_dependency 'minitest'
25
- spec.add_development_dependency 'bundler', '~> 1.11'
26
- spec.add_development_dependency 'rake', '~> 10.0'
25
+ spec.add_development_dependency 'bundler', '>= 1.11'
26
+ spec.add_development_dependency 'rake', '>= 10.0'
27
27
  spec.add_development_dependency 'rails-i18n', '>=4'
28
28
  spec.add_development_dependency 'sqlite3'
29
+ spec.add_development_dependency 'byebug'
29
30
  end
data/lib/enum_ext.rb CHANGED
@@ -14,7 +14,7 @@ require 'enum_ext/version'
14
14
  module EnumExt
15
15
 
16
16
  # defines shortcut for getting integer value of enum.
17
- # for enum named status will generate:
17
+ # for enum named 'status' will generate:
18
18
  # instance.status_i
19
19
  def enum_i( enum_name )
20
20
  define_method "#{enum_name}_i" do
@@ -32,7 +32,7 @@ module EnumExt
32
32
  # For this call:
33
33
  # ext_enum_sets :status, {
34
34
  # delivery_set: [:ready_for_shipment, :on_delivery, :delivered] # for shipping department for example
35
- # in_warehouse: [:ready_for_shipment] # this just for superposition example below
35
+ # in_warehouse: [:ready_for_shipment] # this scope is just for superposition example below
36
36
  # }
37
37
  #
38
38
  # it will generate:
@@ -69,27 +69,26 @@ module EnumExt
69
69
  # ext_enum_sets :status, {
70
70
  # outside_wharehouse: ( delivery_set_statuses - in_warehouse_statuses )... any other array operations like &, + and so can be used
71
71
  # }
72
- def ext_enum_sets( enum_name, options )
72
+ def ext_enum_sets( enum_name, options = {} )
73
73
  enum_plural = enum_name.to_s.pluralize
74
74
 
75
75
  self.instance_eval do
76
- options.each do |set_name, enum_vals|
77
- # set_name scope
78
- scope set_name, -> { where( enum_name => self.send( enum_plural ).slice( *enum_vals.map(&:to_s) ).values ) }
76
+ # with_enums scope
77
+ scope "with_#{enum_plural}", -> (sets_arr) {
78
+ where( enum_name => self.send( enum_plural ).slice(
79
+ *sets_arr.map{|set_name| self.try( "#{set_name}_#{enum_plural}" ) || set_name }.flatten.uniq.map(&:to_s) ).values )
80
+ } if !respond_to?("with_#{enum_plural}") && respond_to?(:scope)
79
81
 
80
- # with_enums scope
81
- scope "with_#{enum_plural}", -> (sets_arr) {
82
- where( enum_name => self.send( enum_plural ).slice(
83
- *sets_arr.map{|set_name| self.try( "#{set_name}_#{enum_plural}" ) || set_name }.flatten.uniq.map(&:to_s) ).values )
84
- } unless respond_to?("with_#{enum_plural}")
85
-
86
- # without_enums scope
87
- scope "without_#{enum_plural}", -> (sets_arr) {
88
- where.not( id: self.send("with_#{enum_plural}", sets_arr) )
89
- } unless respond_to?("without_#{enum_plural}")
82
+ # without_enums scope
83
+ scope "without_#{enum_plural}", -> (sets_arr) {
84
+ where.not( id: self.send("with_#{enum_plural}", sets_arr) )
85
+ } if !respond_to?("without_#{enum_plural}") && respond_to?(:scope)
90
86
 
87
+ options.each do |set_name, enum_vals|
88
+ # set_name scope
89
+ scope set_name, -> { where( enum_name => self.send( enum_plural ).slice( *enum_vals.map(&:to_s) ).values ) } if respond_to?(:scope)
91
90
 
92
- # class.enum_set_values
91
+ # class.enum_set_values
93
92
  define_singleton_method( "#{set_name}_#{enum_plural}" ) do
94
93
  enum_vals
95
94
  end
@@ -181,13 +180,22 @@ module EnumExt
181
180
  # }
182
181
  # end
183
182
  #
183
+ # Could be called multiple times, all humanization definitions will be merged under the hood:
184
+ # humanize_enum :status, {
185
+ # payed: I18n.t("scope.#{status}")
186
+ # }
187
+ # humanize_enum :status, {
188
+ # billed: I18n.t("scope.#{status}")
189
+ # }
190
+ #
191
+ #
184
192
  # Example with block:
185
193
  #
186
194
  # humanize_enum :status do
187
195
  # I18n.t("scope.#{status}")
188
196
  # end
189
197
  #
190
- # in select:
198
+ # in views select:
191
199
  # f.select :status, Request.t_statuses_options
192
200
  #
193
201
  # in select in Active Admin filter
@@ -208,11 +216,28 @@ module EnumExt
208
216
 
209
217
  self.instance_eval do
210
218
 
219
+ #t_enum
220
+ define_method "t_#{enum_name}" do
221
+ t = block || @@localizations.try(:with_indifferent_access)[send(enum_name)]
222
+ if t.try(:lambda?)
223
+ t.try(:arity) == 1 && t.call( self ) || t.try(:call)
224
+ elsif t.is_a?(Proc)
225
+ instance_eval(&t)
226
+ else
227
+ t
228
+ end.to_s
229
+ end
230
+
231
+ @@localizations ||= {}.with_indifferent_access
232
+ # if localization is abscent than block must be given
233
+ @@localizations.merge!(
234
+ localizations.try(:with_indifferent_access) ||
235
+ localizations ||
236
+ send(enum_plural).keys.map{|en| [en, Proc.new{ self.new({ enum_name => en }).send("t_#{enum_name}") }] }.to_h.with_indifferent_access
237
+ )
211
238
  #t_enums
212
239
  define_singleton_method( "t_#{enum_plural}" ) do
213
- # if localization is abscent than block must be given
214
- localizations.try(:with_indifferent_access) || localizations ||
215
- send(enum_plural).keys.map {|en| [en, self.new( {enum_name => en} ).send("t_#{enum_name}")] }.to_h.with_indifferent_access
240
+ @@localizations
216
241
  end
217
242
 
218
243
  #t_enums_options
@@ -225,16 +250,8 @@ module EnumExt
225
250
  send("t_#{enum_plural}_options_raw_i", send("t_#{enum_plural}") )
226
251
  end
227
252
 
228
- #t_enum
229
- define_method "t_#{enum_name}" do
230
- t = block || localizations.try(:with_indifferent_access)[send(enum_name)]
231
- if t.try(:lambda?)
232
- t.try(:arity) == 1 && t.call( self ) || t.try(:call)
233
- elsif t.is_a?(Proc)
234
- instance_eval(&t)
235
- else
236
- t
237
- end.to_s
253
+ define_method "t_#{enum_name}=" do |new_val|
254
+ send("#{enum_name}=", new_val)
238
255
  end
239
256
 
240
257
  #protected?
@@ -258,7 +275,6 @@ module EnumExt
258
275
  key_val
259
276
  end
260
277
  end
261
-
262
278
  end
263
279
  end
264
280
  alias localize_enum humanize_enum
@@ -278,4 +294,13 @@ module EnumExt
278
294
  end
279
295
  end
280
296
 
297
+ # human_attribute_name is redefined for automation like this:
298
+ # p #{object.class.human_attribute_name( attr_name )}:
299
+ # p object.send(attr_name)
300
+ def human_attribute_name( name, options = {} )
301
+ # if name starts from t_ and there is a column with the last part then ...
302
+ name[0..1] == 't_' && column_names.include?(name[2..-1]) ? super( name[2..-1], options ) : super( name, options )
303
+ end
304
+
305
+
281
306
  end
@@ -1,3 +1,3 @@
1
1
  module EnumExt
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enum_ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - alekseyl
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-14 00:00:00.000000000 Z
11
+ date: 2021-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4.1'
19
+ version: 5.2.4.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '4.1'
26
+ version: 5.2.4.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -42,28 +42,28 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.11'
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
54
  version: '1.11'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '10.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.0'
69
69
  - !ruby/object:Gem::Dependency
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: byebug
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'
97
111
  description: Enum extension, ads enum sets, mass-assign, localization, and some sugar
98
112
  helpers.
99
113
  email:
@@ -103,6 +117,8 @@ extensions: []
103
117
  extra_rdoc_files: []
104
118
  files:
105
119
  - ".gitignore"
120
+ - ".travis.yml"
121
+ - CHANGELOG.md
106
122
  - Gemfile
107
123
  - Gemfile.lock
108
124
  - LICENSE.txt
@@ -117,7 +133,7 @@ homepage: https://github.com/alekseyl/enum_ext
117
133
  licenses:
118
134
  - MIT
119
135
  metadata: {}
120
- post_install_message:
136
+ post_install_message:
121
137
  rdoc_options: []
122
138
  require_paths:
123
139
  - lib
@@ -132,9 +148,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
148
  - !ruby/object:Gem::Version
133
149
  version: '0'
134
150
  requirements: []
135
- rubyforge_project:
136
- rubygems_version: 2.6.8
137
- signing_key:
151
+ rubygems_version: 3.1.2
152
+ signing_key:
138
153
  specification_version: 4
139
154
  summary: Enum extension, ads enum sets, mass-assign, localization, and some sugar
140
155
  helpers.