enumerize 2.2.1 → 2.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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +73 -0
  3. data/CHANGELOG.md +35 -1
  4. data/Gemfile +2 -3
  5. data/Gemfile.global +2 -10
  6. data/Gemfile.mongo_mapper +2 -3
  7. data/Gemfile.rails60 +6 -0
  8. data/Gemfile.rails61 +6 -0
  9. data/Gemfile.rails70 +9 -0
  10. data/Gemfile.railsmaster +5 -0
  11. data/README.md +205 -94
  12. data/Rakefile +2 -0
  13. data/lib/enumerize/activemodel.rb +2 -0
  14. data/lib/enumerize/activerecord.rb +36 -2
  15. data/lib/enumerize/attribute.rb +19 -11
  16. data/lib/enumerize/attribute_map.rb +2 -0
  17. data/lib/enumerize/base.rb +6 -6
  18. data/lib/enumerize/hooks/formtastic.rb +4 -1
  19. data/lib/enumerize/hooks/sequel_dataset.rb +2 -0
  20. data/lib/enumerize/hooks/simple_form.rb +4 -1
  21. data/lib/enumerize/hooks/uniqueness.rb +2 -0
  22. data/lib/enumerize/integrations/rails_admin.rb +2 -0
  23. data/lib/enumerize/integrations/rspec/matcher.rb +7 -2
  24. data/lib/enumerize/integrations/rspec.rb +2 -0
  25. data/lib/enumerize/module.rb +2 -0
  26. data/lib/enumerize/module_attributes.rb +2 -0
  27. data/lib/enumerize/mongoid.rb +16 -0
  28. data/lib/enumerize/predicatable.rb +3 -1
  29. data/lib/enumerize/predicates.rb +2 -0
  30. data/lib/enumerize/scope/activerecord.rb +16 -0
  31. data/lib/enumerize/scope/mongoid.rb +15 -0
  32. data/lib/enumerize/scope/sequel.rb +16 -0
  33. data/lib/enumerize/sequel.rb +9 -4
  34. data/lib/enumerize/set.rb +2 -0
  35. data/lib/enumerize/utils.rb +12 -0
  36. data/lib/enumerize/value.rb +14 -15
  37. data/lib/enumerize/version.rb +1 -1
  38. data/lib/enumerize.rb +4 -0
  39. data/lib/sequel/plugins/enumerize.rb +2 -0
  40. data/spec/enumerize/integrations/rspec/matcher_spec.rb +13 -10
  41. data/spec/spec_helper.rb +2 -0
  42. data/test/activemodel_test.rb +24 -22
  43. data/test/activerecord_test.rb +229 -92
  44. data/test/attribute_map_test.rb +9 -7
  45. data/test/attribute_test.rb +37 -30
  46. data/test/base_test.rb +38 -36
  47. data/test/formtastic_test.rb +17 -0
  48. data/test/module_attributes_test.rb +10 -8
  49. data/test/mongo_mapper_test.rb +19 -10
  50. data/test/mongoid_test.rb +51 -22
  51. data/test/multiple_test.rb +15 -7
  52. data/test/predicates_test.rb +20 -18
  53. data/test/rails_admin_test.rb +4 -2
  54. data/test/sequel_test.rb +100 -47
  55. data/test/set_test.rb +25 -23
  56. data/test/simple_form_test.rb +17 -0
  57. data/test/support/mock_controller.rb +2 -0
  58. data/test/support/shared_enums.rb +43 -0
  59. data/test/support/view_test_helper.rb +14 -1
  60. data/test/test_helper.rb +2 -0
  61. data/test/value_test.rb +51 -30
  62. metadata +11 -30
  63. data/.travis.yml +0 -35
  64. data/Gemfile.rails42 +0 -7
  65. data/Gemfile.rails50 +0 -7
  66. data/Gemfile.rails52 +0 -7
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  if defined?(::ActiveModel::Attributes)
@@ -22,50 +24,50 @@ describe Enumerize do
22
24
 
23
25
  it 'initialize value' do
24
26
  user = model.new(:name => 'active_model_user', :sex => :male, :role => :user, :interests => [:music, :programming])
25
- user.sex.must_equal 'male'
26
- user.sex_text.must_equal 'Male'
27
- user.role.must_equal 'user'
28
- user.role_text.must_equal 'User'
29
- user.interests.must_equal %w(music programming)
27
+ expect(user.sex).must_equal 'male'
28
+ expect(user.sex_text).must_equal 'Male'
29
+ expect(user.role).must_equal 'user'
30
+ expect(user.role_text).must_equal 'User'
31
+ expect(user.interests).must_equal %w(music programming)
30
32
  end
31
33
 
32
34
  it 'sets nil if invalid value is passed' do
33
35
  user = model.new
34
36
  user.sex = :invalid
35
- user.sex.must_be_nil
37
+ expect(user.sex).must_be_nil
36
38
  end
37
39
 
38
40
  it 'stores value' do
39
41
  user = model.new
40
42
  user.sex = :female
41
- user.sex.must_equal 'female'
43
+ expect(user.sex).must_equal 'female'
42
44
  end
43
45
 
44
46
  it 'has default value' do
45
- model.new.role.must_equal 'user'
47
+ expect(model.new.role).must_equal 'user'
46
48
  end
47
49
 
48
50
  it 'validates inclusion' do
49
51
  user = model.new
50
52
  user.role = 'wrong'
51
- user.wont_be :valid?
53
+ expect(user).wont_be :valid?
52
54
  end
53
55
 
54
56
  it 'supports multiple attributes' do
55
57
  user = ActiveModelUser.new
56
- user.interests.must_be_instance_of Enumerize::Set
57
- user.interests.must_be_empty
58
+ expect(user.interests).must_be_instance_of Enumerize::Set
59
+ expect(user.interests).must_be_empty
58
60
  user.interests << :music
59
- user.interests.must_equal %w(music)
61
+ expect(user.interests).must_equal %w(music)
60
62
  user.interests << :sports
61
- user.interests.must_equal %w(music sports)
63
+ expect(user.interests).must_equal %w(music sports)
62
64
 
63
65
  user.interests = []
64
66
  interests = user.interests
65
67
  interests << :music
66
- interests.must_equal %w(music)
68
+ expect(interests).must_equal %w(music)
67
69
  interests << :dancing
68
- interests.must_equal %w(music dancing)
70
+ expect(interests).must_equal %w(music dancing)
69
71
  end
70
72
 
71
73
  it 'returns invalid multiple value for validation' do
@@ -73,19 +75,19 @@ describe Enumerize do
73
75
  user.interests << :music
74
76
  user.interests << :invalid
75
77
  values = user.read_attribute_for_validation(:interests)
76
- values.must_equal %w(music invalid)
78
+ expect(values).must_equal %w(music invalid)
77
79
  end
78
80
 
79
81
  it 'validates multiple attributes' do
80
82
  user = ActiveModelUser.new
81
83
  user.interests << :invalid
82
- user.wont_be :valid?
84
+ expect(user).wont_be :valid?
83
85
 
84
86
  user.interests = Object.new
85
- user.wont_be :valid?
87
+ expect(user).wont_be :valid?
86
88
 
87
89
  user.interests = ['music', '']
88
- user.must_be :valid?
90
+ expect(user).must_be :valid?
89
91
  end
90
92
 
91
93
  it 'validates presence with multiple attributes' do
@@ -93,17 +95,17 @@ describe Enumerize do
93
95
  user.interests = []
94
96
  user.valid?
95
97
 
96
- user.errors[:interests].wont_be :empty?
98
+ expect(user.errors[:interests]).wont_be :empty?
97
99
 
98
100
  user.interests = ['']
99
101
  user.valid?
100
102
 
101
- user.errors[:interests].wont_be :empty?
103
+ expect(user.errors[:interests]).wont_be :empty?
102
104
 
103
105
  user.interests = [:dancing, :programming]
104
106
  user.valid?
105
107
 
106
- user.errors[:interests].must_be_empty
108
+ expect(user.errors[:interests]).must_be_empty
107
109
  end
108
110
  end
109
111