enumerize 2.2.1 → 2.5.0

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