enumerize 0.8.0 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +27 -12
  5. data/CHANGELOG.md +141 -0
  6. data/Gemfile +5 -21
  7. data/Gemfile.global +20 -0
  8. data/Gemfile.mongo_mapper +7 -0
  9. data/Gemfile.rails42 +7 -0
  10. data/Gemfile.rails51 +7 -0
  11. data/README.md +185 -9
  12. data/Rakefile +2 -4
  13. data/enumerize.gemspec +1 -0
  14. data/lib/enumerize/activerecord.rb +68 -27
  15. data/lib/enumerize/attribute.rb +42 -10
  16. data/lib/enumerize/base.rb +28 -17
  17. data/lib/enumerize/hooks/formtastic.rb +3 -8
  18. data/lib/enumerize/hooks/sequel_dataset.rb +15 -0
  19. data/lib/enumerize/hooks/simple_form.rb +5 -11
  20. data/lib/enumerize/hooks/uniqueness.rb +3 -8
  21. data/lib/enumerize/integrations/rspec/matcher.rb +107 -26
  22. data/lib/enumerize/mongoid.rb +13 -0
  23. data/lib/enumerize/predicatable.rb +7 -16
  24. data/lib/enumerize/predicates.rb +3 -1
  25. data/lib/enumerize/scope/activerecord.rb +37 -0
  26. data/lib/enumerize/scope/mongoid.rb +35 -0
  27. data/lib/enumerize/scope/sequel.rb +40 -0
  28. data/lib/enumerize/sequel.rb +57 -0
  29. data/lib/enumerize/set.rb +18 -8
  30. data/lib/enumerize/value.rb +10 -9
  31. data/lib/enumerize/version.rb +3 -1
  32. data/lib/enumerize.rb +23 -1
  33. data/spec/enumerize/integrations/rspec/matcher_spec.rb +258 -0
  34. data/spec/spec_helper.rb +28 -0
  35. data/test/activerecord_test.rb +238 -10
  36. data/test/attribute_test.rb +22 -0
  37. data/test/base_test.rb +7 -7
  38. data/test/formtastic_test.rb +3 -12
  39. data/test/mongo_mapper_test.rb +7 -1
  40. data/test/mongoid_test.rb +63 -7
  41. data/test/multiple_test.rb +21 -0
  42. data/test/predicates_test.rb +6 -0
  43. data/test/sequel_test.rb +291 -0
  44. data/test/set_test.rb +14 -0
  45. data/test/simple_form_test.rb +0 -1
  46. data/test/support/mock_controller.rb +4 -0
  47. data/test/support/view_test_helper.rb +4 -0
  48. data/test/test_helper.rb +23 -2
  49. data/test/value_test.rb +51 -21
  50. metadata +40 -9
  51. data/Gemfile.rails4 +0 -23
  52. data/lib/enumerize/form_helper.rb +0 -23
  53. data/test/rspec_matcher_test.rb +0 -76
  54. data/test/rspec_spec.rb +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f08aba602317c54ffaf5f735e09a205a5d1a624c
4
- data.tar.gz: 87f7613830f330b958dbd0a61f7a7ac89c262623
3
+ metadata.gz: f5a43e5546fd78ed42c35abfccc3314e52b7671f
4
+ data.tar.gz: 727be0571656833f27ee73ff8d65d6455c7511e4
5
5
  SHA512:
6
- metadata.gz: a0226ef792ee39084f80286b886880003659bec15c62e1e98938048e6b3accb03b04330591e92d42a2d79f94fb874d80fe14395b4007d3576ac1285bb0b3ff77
7
- data.tar.gz: 48448538be205b068c3c7f01ca68c6780e7e4d2fd0db6f353455ab1462f8db587e744633cd605c7872b77f6bf6ecd353e1ba076998ebc04108e04322ab024c48
6
+ metadata.gz: 88cfa3f67475bf8d18279b7f53124051237c3a5bfe302e88860f5c405834cd95ebe9cfca67eb0d721c52ca746a15458cf284d2a376b049ede0b6b69379f667a6
7
+ data.tar.gz: f57a1bca5a058f2074d834968418865455f4e0ccf3aa2441064f05cb5901a4eb8ec4776cd2e95c938635a41659723679108d873caa338e8487879e91fbcafb25
data/.gitignore CHANGED
@@ -2,6 +2,7 @@
2
2
  *.rbc
3
3
  .bundle
4
4
  .config
5
+ .ruby-version
5
6
  .yardoc
6
7
  .idea/
7
8
  enumerize.iml
@@ -12,6 +13,7 @@ _yardoc
12
13
  coverage
13
14
  doc/
14
15
  lib/bundler/man
16
+ log/*
15
17
  pkg
16
18
  rdoc
17
19
  spec/reports
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/.travis.yml CHANGED
@@ -1,19 +1,34 @@
1
1
  language: ruby
2
+ sudo: false
2
3
  services:
4
+ - postgresql
3
5
  - mongodb
4
- before_install:
5
- - gem install bundler
6
6
  gemfile:
7
7
  - Gemfile
8
- - Gemfile.rails4
8
+ - Gemfile.rails42
9
+ - Gemfile.rails51
10
+ - Gemfile.mongo_mapper
9
11
  rvm:
10
- - 1.9.3
11
- - 2.0.0
12
- - 2.1.0
13
- - jruby-19mode
12
+ - 2.2.7
13
+ - 2.3.3
14
+ - 2.4.1
15
+ - jruby-9.1.8.0
16
+ env:
17
+ global:
18
+ - DB_USER=postgres
19
+ - DB_PASS=
20
+ matrix:
21
+ - DB=sqlite3
22
+ - DB=postgresql
23
+ matrix:
24
+ fast_finish: true
25
+ allow_failures:
26
+ - rvm: jruby-9.1.8.0
27
+ exclude:
28
+ - gemfile: Gemfile.mongo_mapper
29
+ env: DB=postgresql
30
+ branches:
31
+ only:
32
+ - master
14
33
  notifications:
15
- email:
16
- recipients:
17
- - lest@brainspec.com
18
- - nashby@brainspec.com
19
- - dreamfall@brainspec.com
34
+ email: false
data/CHANGELOG.md CHANGED
@@ -1,3 +1,144 @@
1
+ ## master
2
+
3
+ ### enhancements
4
+
5
+ ### bug fix
6
+
7
+ ## 2.1.2 (May 18, 2017)
8
+
9
+ ### bug fix
10
+
11
+ * Support YAML serialization for the custom AR type. (by [@lest](https://github.com/lest))
12
+
13
+ ## 2.1.1 (May 1, 2017)
14
+
15
+ ### enhancements
16
+
17
+ * Run tests with multiple DBs (SQLite and PostgreSQL). (by [tkawa](https://github.com/tkawa))
18
+
19
+ ### bug fix
20
+
21
+ * Support deserialize and Rails 4.2 methods in the custom AR::Type class. (by [@lest](https://github.com/lest))
22
+ * Support dumping custom AR type to JSON. (by [@lest](https://github.com/lest))
23
+
24
+ ## 2.1.0 (March 31, 2017)
25
+
26
+ ### enhancements
27
+
28
+ * Support Active Record types serialization. (by [@lest](https://github.com/lest))
29
+
30
+ ## 2.0.1 (October 18, 2016)
31
+
32
+ ### bug fix
33
+
34
+ * Support enumerized attributes in #update_all on relation objects. (by [@lest](https://github.com/lest))
35
+
36
+ ## 2.0.0 (August 10, 2016)
37
+
38
+ ### enhancements
39
+
40
+ * Drop support for Ruby older than 2.2. Support only Ruby 2.2+. (by [@nashby](https://github.com/nashby))
41
+ * Drop support for Rails 4.0 and 4.1. Support only Rails 4.2 and newer. (by [@lest](https://github.com/lest))
42
+ * Support Rails 5.0. (by [@nashby](https://github.com/nashby) and [@lest](https://github.com/lest))
43
+ * Allow to pass enumerize values to `ActiveRecord#update_all` (by [@DmitryTsepelev](https://github.com/DmitryTsepelev) and [@ianwhite](https://github.com/ianwhite))
44
+
45
+ ```ruby
46
+ User.update_all(status: :blocked)
47
+ ```
48
+
49
+ ### bug fix
50
+
51
+ * Rescue MissingAttributeError on attribute writing. (by [@embs](https://github.com/embs))
52
+ * Fix presence validation for multiple attributes when the list contains a blank string. (by [@smoriwaki](https://github.com/smoriwaki))
53
+ * Replace deprecated alias_method_chain with Module#prepend. (by [@koenpunt](https://github.com/koenpunt) and [@akm](https://github.com/akm))
54
+ * Make it compatible with `globalize` gem. (by [@falm](https://github.com/falm))
55
+ * Prevent method getter from being called when no default_value is being set. (by [@arjan0307](https://github.com/arjan0307))
56
+
57
+ ## 1.1.1 (January 25, 2016)
58
+
59
+ ### bug fix
60
+
61
+ * Fix exception when using predicate methods and enumerized values have dash in it. (by [@nashby](https://github.com/nashby))
62
+
63
+ ## 1.1.0 (November 15, 2015)
64
+
65
+ ### enhancements
66
+ * Add Sequel support. (by [@mrbrdo](https://github.com/mrbrdo))
67
+ * Add qualifiers to RSpec matcher. (by [@maurogeorge](https://github.com/maurogeorge))
68
+ * Support hash in the RSpec matcher. (by [@maurogeorge](https://github.com/maurogeorge))
69
+
70
+ ### bug fix
71
+
72
+ ## 1.0.0 (August 2, 2015)
73
+
74
+ ### enhancements
75
+ * Add `texts` method for getting an array of text values of the enumerized field with multiple type. (by [@huynhquancam](https://github.com/huynhquancam))
76
+ * Drop Rails 3.2 support. (by [@nashby](https://github.com/nashby))
77
+
78
+ ### bug fix
79
+
80
+ * Fix conflicts when Active Record and Mongoid are used at the same time. (by [@matsu911](https://github.com/matsu911))
81
+
82
+ ## 0.11.0 (March 29, 2015) ##
83
+
84
+ ### enhancements
85
+ * Add ability to set default value for enumerized field with multiple type. (by [@nashby](https://github.com/nashby))
86
+ * Support Rails 4.2. (by [@lest](https://github.com/lest))
87
+
88
+ ### bug fix
89
+ * Use Mongoid's `:in` method for generated scopes, fix chained scopes. (by [@nashby](https://github.com/nashby))
90
+ * Use `after_initialize` callback to set default value in Mongoid documents. (by [@nashby](https://github.com/nashby))
91
+
92
+ ## 0.10.1 (March 4, 2015) ##
93
+
94
+ ### bug fix
95
+
96
+ * Use method_missing instead of defining singleton class methods to allow Marshal serialization (by [@lest](https://github.com/lest))
97
+
98
+ ## 0.10.0 (February 17, 2015) ##
99
+
100
+ ### enhancements
101
+
102
+ * Add scopes support to mongoid documents (by [@nashby](https://github.com/nashby))
103
+ * Use underscore.humanize in #text to make use of Inflector acronyms (by [@mintuhouse](https://github.com/mintuhouse))
104
+ * Raise an exception when :scope option is used together with :multiple option (by [@maurogeorge](https://github.com/maurogeorge))
105
+ * Use alias_method_chain instead of overriding Class#inherited (by [@yuroyoro](https://github.com/yuroyoro))
106
+ * Shortcut methods to retrieve enumerize values (by [@CyborgMaster](https://github.com/CyborgMaster))
107
+ * Extend equality operator to support comparing with symbols and custom values (e.g. integers) (by [@CyborgMaster](https://github.com/CyborgMaster))
108
+
109
+ ## 0.9.0 (December 11, 2014) ##
110
+
111
+ ### enhancements
112
+
113
+ * Add :value_class option (by [@lest](https://github.com/lest))
114
+ * Use 'defaults' scope in the localization file for the attributes that used across several models. This will help to avoid conflicting keys with model names and attribute names. Example:
115
+
116
+ ```yml
117
+ en:
118
+ enumerize:
119
+ defaults:
120
+ sex:
121
+ male: Male
122
+ female: Female
123
+ ```
124
+
125
+ You still can use the old solution without "default" scope:
126
+
127
+ ```yml
128
+ en:
129
+ enumerize:
130
+ sex:
131
+ male: Male
132
+ female: Female
133
+ ```
134
+ (by [@nashby](https://github.com/nashby))
135
+
136
+ ### bug fix
137
+ * Store values for validation using string keys (by [@nagyt234](https://github.com/nagyt234))
138
+ * Store custom values for multiple attributes (by [@lest](https://github.com/lest))
139
+ * Support validations after using AR#becomes (by [@lest](https://github.com/lest))
140
+ * Do not try to set attribute for not selected attributes (by [@dany1468](https://github.com/dany1468))
141
+
1
142
  ## 0.8.0 (March 4, 2014) ##
2
143
 
3
144
  ### enhancements
data/Gemfile CHANGED
@@ -1,23 +1,7 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
4
-
5
- gem 'rake'
6
- gem 'minitest', '~> 4.1'
7
- gem 'rspec', :require => false
8
-
9
- gem 'rails', '~> 3.2.0', :require => false
10
- gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
11
- gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
12
-
13
- platforms :rbx do
14
- gem 'rubysl', '~> 2.0'
15
- gem 'psych'
16
- gem 'rubinius-developer_tools'
17
- gem 'rubysl-test-unit'
18
- end
1
+ eval_gemfile('Gemfile.global')
19
2
 
3
+ gem 'minitest', '~> 5.8'
4
+ gem 'rails', '5.0.2', require: false
5
+ gem 'activerecord-jdbcsqlite3-adapter', github: 'jruby/activerecord-jdbc-adapter', branch: 'rails-5', platform: :jruby
6
+ gem 'activerecord-jdbcpostgresql-adapter', github: 'jruby/activerecord-jdbc-adapter', branch: 'rails-5', platform: :jruby
20
7
  gem 'mongoid'
21
- gem 'mongo_mapper'
22
- gem 'simple_form'
23
- gem 'formtastic'
data/Gemfile.global ADDED
@@ -0,0 +1,20 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'rake'
6
+ gem 'rspec', :require => false
7
+
8
+ gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
9
+ gem 'pg', :platform => [:ruby, :mswin, :mingw]
10
+ gem 'sequel'
11
+
12
+ platforms :rbx do
13
+ gem 'rubysl', '~> 2.0'
14
+ gem 'psych'
15
+ gem 'rubinius-developer_tools'
16
+ gem 'rubysl-test-unit'
17
+ end
18
+
19
+ gem 'simple_form'
20
+ gem 'formtastic'
@@ -0,0 +1,7 @@
1
+ eval_gemfile('Gemfile.global')
2
+
3
+ gem 'minitest', '~> 5.8'
4
+ gem 'rails', '4.2.8', :require => false
5
+ gem 'activerecord-jdbcsqlite3-adapter', platform: :jruby
6
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
7
+ gem 'mongo_mapper'
data/Gemfile.rails42 ADDED
@@ -0,0 +1,7 @@
1
+ eval_gemfile('Gemfile.global')
2
+
3
+ gem 'minitest', '~> 5.8'
4
+ gem 'rails', '4.2.8', :require => false
5
+ gem 'activerecord-jdbcsqlite3-adapter', platform: :jruby
6
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
7
+ gem 'mongoid', '~> 5.0'
data/Gemfile.rails51 ADDED
@@ -0,0 +1,7 @@
1
+ eval_gemfile('Gemfile.global')
2
+
3
+ gem 'minitest', '~> 5.8'
4
+ gem 'rails', '5.1.0.rc1', require: false
5
+ gem 'activerecord-jdbcsqlite3-adapter', github: 'jruby/activerecord-jdbc-adapter', branch: 'rails-5', platform: :jruby
6
+ gem 'activerecord-jdbcpostgresql-adapter', github: 'jruby/activerecord-jdbc-adapter', branch: 'rails-5', platform: :jruby
7
+ gem 'mongoid', github: 'mongodb/mongoid'
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Enumerize [![TravisCI](https://secure.travis-ci.org/brainspec/enumerize.png?branch=master)](http://travis-ci.org/brainspec/enumerize) [![Gemnasium](https://gemnasium.com/brainspec/enumerize.png)](https://gemnasium.com/brainspec/enumerize)
1
+ # Enumerize [![TravisCI](https://secure.travis-ci.org/brainspec/enumerize.svg?branch=master)](http://travis-ci.org/brainspec/enumerize) [![Gemnasium](https://gemnasium.com/brainspec/enumerize.svg)](https://gemnasium.com/brainspec/enumerize)
2
2
 
3
- Enumerated attributes with I18n and ActiveRecord/Mongoid/MongoMapper support
3
+ Enumerated attributes with I18n and ActiveRecord/Mongoid/MongoMapper/Sequel support
4
4
 
5
5
  ## Installation
6
6
 
@@ -34,6 +34,17 @@ Note that enumerized values are just identificators so if you want to use multi-
34
34
  ActiveRecord:
35
35
 
36
36
  ```ruby
37
+ class CreateUsers < ActiveRecord::Migration
38
+ def change
39
+ create_table :users do |t|
40
+ t.string :sex
41
+ t.string :role
42
+
43
+ t.timestamps
44
+ end
45
+ end
46
+ end
47
+
37
48
  class User < ActiveRecord::Base
38
49
  extend Enumerize
39
50
 
@@ -78,17 +89,18 @@ en:
78
89
  female: "Female"
79
90
  ```
80
91
 
81
- or if you use `sex` attribute across several models you can use this:
92
+ or if you use `sex` attribute across several models you can use `defaults` scope:
82
93
 
83
94
  ```ruby
84
95
  en:
85
96
  enumerize:
86
- sex:
87
- male: "Male"
88
- female: "Female"
97
+ defaults:
98
+ sex:
99
+ male: "Male"
100
+ female: "Female"
89
101
  ```
90
102
 
91
- You can also pass `i18n_scope` option to specify scope (or array of scopes) storring the translations. Note that `i18n_scope` option does not accept scope as array:
103
+ You can also pass `i18n_scope` option to specify scope (or array of scopes) storing the translations.
92
104
 
93
105
 
94
106
  ```ruby
@@ -168,6 +180,7 @@ user.sex = 'male'
168
180
  user.male? # => true
169
181
  user.female? # => false
170
182
  ```
183
+ :warning: If `enumerize` is used with Mongoid, it's not recommended to use `"writer"` as a field value since `writer?` is defined by Mongoid. [See more](https://github.com/brainspec/enumerize/issues/235). :warning:
171
184
 
172
185
  Using prefix:
173
186
 
@@ -239,6 +252,8 @@ User.having_status(:blocked).with_sex(:male, :female)
239
252
  # SELECT "users".* FROM "users" WHERE "users"."status" IN (2) AND "users"."sex" IN ('male', 'female')
240
253
  ```
241
254
 
255
+ :warning: It is not possible to define a scope when using the `:multiple` option. :warning:
256
+
242
257
  Array-like attributes with plain ruby objects:
243
258
 
244
259
  ```ruby
@@ -264,6 +279,24 @@ class User < ActiveRecord::Base
264
279
  end
265
280
  ```
266
281
 
282
+ get an array of all text values:
283
+
284
+ ```ruby
285
+ @user.interests.texts # shortcut for @user.interests.map(&:text)
286
+ ```
287
+
288
+ Also, the reader method can be overridden, referencing the enumerized attribute value using `super`:
289
+
290
+ ```ruby
291
+ def sex
292
+ if current_user.admin?
293
+ "Super#{super}"
294
+ else
295
+ super
296
+ end
297
+ end
298
+ ```
299
+
267
300
  ### SimpleForm
268
301
 
269
302
  If you are using SimpleForm gem you don't need to specify input type (`:select` by default) and collection:
@@ -308,12 +341,155 @@ Also you can use builtin RSpec matcher:
308
341
  class User
309
342
  extend Enumerize
310
343
 
311
- enumerize :sex, in: [:male, :female], default: :male
344
+ enumerize :sex, in: [:male, :female]
345
+ end
346
+
347
+ describe User do
348
+ it { should enumerize(:sex) }
349
+
350
+ # or with RSpec 3 expect syntax
351
+ it { is_expected.to enumerize(:sex) }
352
+ end
353
+ ```
354
+
355
+ #### Qualifiers
356
+
357
+ ##### in
358
+
359
+ Use `in` to test usage of the `:in` option.
360
+
361
+ ```ruby
362
+ class User
363
+ extend Enumerize
364
+
365
+ enumerize :sex, in: [:male, :female]
312
366
  end
313
367
 
314
368
  describe User do
315
369
  it { should enumerize(:sex).in(:male, :female) }
316
- it { should enumerize(:sex).in(:male, :female).with_default(:male) }
370
+ end
371
+ ```
372
+
373
+ You can test enumerized attribute value using custom values with the `in`
374
+ qualifier.
375
+
376
+ ```ruby
377
+ class User
378
+ extend Enumerize
379
+
380
+ enumerize :sex, in: { male: 0, female: 1 }
381
+ end
382
+
383
+ describe User do
384
+ it { should enumerize(:sex).in(male: 0, female: 1) }
385
+ end
386
+ ```
387
+
388
+ ##### with_default
389
+
390
+ Use `with_default` to test usage of the `:default` option.
391
+
392
+ ```ruby
393
+ class User
394
+ extend Enumerize
395
+
396
+ enumerize :sex, in: [:male, :female], default: :female
397
+ end
398
+
399
+ describe User do
400
+ it { should enumerize(:sex).in(:male, :female).with_default(:female) }
401
+ end
402
+ ```
403
+
404
+ ##### with_i18n_scope
405
+
406
+ Use `with_i18n_scope` to test usage of the `:i18n_scope` option.
407
+
408
+ ```ruby
409
+ class User
410
+ extend Enumerize
411
+
412
+ enumerize :sex, in: [:male, :female], i18n_scope: 'sex'
413
+ end
414
+
415
+ describe User do
416
+ it { should enumerize(:sex).in(:male, :female).with_i18n_scope('sex') }
417
+ end
418
+ ```
419
+
420
+ ##### with_predicates
421
+
422
+ Use `with_predicates` to test usage of the `:predicates` option.
423
+
424
+ ```ruby
425
+ class User
426
+ extend Enumerize
427
+
428
+ enumerize :sex, in: [:male, :female], predicates: true
429
+ end
430
+
431
+ describe User do
432
+ it { should enumerize(:sex).in(:male, :female).with_predicates(true) }
433
+ end
434
+ ```
435
+
436
+ You can text prefixed predicates with the `with_predicates` qualifiers.
437
+
438
+ ```ruby
439
+ class User
440
+ extend Enumerize
441
+
442
+ enumerize :sex, in: [:male, :female], predicates: { prefix: true }
443
+ end
444
+
445
+ describe User do
446
+ it { should enumerize(:sex).in(:male, :female).with_predicates(prefix: true) }
447
+ end
448
+ ```
449
+
450
+ ##### with_scope
451
+
452
+ Use `with_scope` to test usage of the `:scope` option.
453
+
454
+ ```ruby
455
+ class User
456
+ extend Enumerize
457
+
458
+ enumerize :sex, in: [:male, :female], scope: true
459
+ end
460
+
461
+ describe User do
462
+ it { should enumerize(:sex).in(:male, :female).with_scope(true) }
463
+ end
464
+ ```
465
+
466
+ You can text custom scope with the `with_scope` qualifiers.
467
+
468
+ ```ruby
469
+ class User
470
+ extend Enumerize
471
+
472
+ enumerize :sex, in: [:male, :female], scope: :having_sex
473
+ end
474
+
475
+ describe User do
476
+ it { should enumerize(:sex).in(:male, :female).with_scope(scope: :having_sex) }
477
+ end
478
+ ```
479
+
480
+ ##### with_multiple
481
+
482
+ Use `with_multiple` to test usage of the `:multiple` option.
483
+
484
+ ```ruby
485
+ class User
486
+ extend Enumerize
487
+
488
+ enumerize :sex, in: [:male, :female], multiple: true
489
+ end
490
+
491
+ describe User do
492
+ it { should enumerize(:sex).in(:male, :female).with_multiple(true) }
317
493
  end
318
494
  ```
319
495
 
data/Rakefile CHANGED
@@ -10,8 +10,6 @@ Rake::TestTask.new do |t|
10
10
  t.verbose = true
11
11
  end
12
12
 
13
- RSpec::Core::RakeTask.new('default') do |t|
14
- t.pattern = FileList['test/rspec_spec.rb']
15
- end
13
+ RSpec::Core::RakeTask.new
16
14
 
17
- task :default => :test
15
+ task :default => [:test, :spec]
data/enumerize.gemspec CHANGED
@@ -4,6 +4,7 @@ require File.expand_path('../lib/enumerize/version', __FILE__)
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ["Sergey Nartimov"]
6
6
  gem.email = "team@brainspec.com"
7
+ gem.licenses = ['MIT']
7
8
  gem.description = %q{Enumerated attributes with I18n and ActiveRecord/Mongoid/MongoMapper support}
8
9
  gem.summary = %q{Enumerated attributes with I18n and ActiveRecord/Mongoid/MongoMapper support}
9
10
  gem.homepage = "https://github.com/brainspec/enumerize"