enumerize 0.8.0 → 1.1.1

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +8 -2
  5. data/CHANGELOG.md +91 -0
  6. data/Gemfile +4 -22
  7. data/{Gemfile.rails4 → Gemfile.global} +2 -5
  8. data/Gemfile.mongo_mapper +5 -0
  9. data/Gemfile.rails40 +5 -0
  10. data/README.md +171 -8
  11. data/Rakefile +2 -4
  12. data/lib/enumerize/activerecord.rb +3 -29
  13. data/lib/enumerize/attribute.rb +41 -9
  14. data/lib/enumerize/base.rb +25 -10
  15. data/lib/enumerize/hooks/sequel_dataset.rb +19 -0
  16. data/lib/enumerize/integrations/rspec/matcher.rb +107 -26
  17. data/lib/enumerize/mongoid.rb +13 -0
  18. data/lib/enumerize/predicatable.rb +7 -16
  19. data/lib/enumerize/predicates.rb +3 -1
  20. data/lib/enumerize/scope/activerecord.rb +37 -0
  21. data/lib/enumerize/scope/mongoid.rb +35 -0
  22. data/lib/enumerize/scope/sequel.rb +40 -0
  23. data/lib/enumerize/sequel.rb +57 -0
  24. data/lib/enumerize/set.rb +18 -8
  25. data/lib/enumerize/value.rb +8 -7
  26. data/lib/enumerize/version.rb +1 -1
  27. data/lib/enumerize.rb +23 -1
  28. data/spec/enumerize/integrations/rspec/matcher_spec.rb +258 -0
  29. data/spec/spec_helper.rb +28 -0
  30. data/test/activerecord_test.rb +58 -7
  31. data/test/attribute_test.rb +22 -0
  32. data/test/formtastic_test.rb +3 -12
  33. data/test/mongo_mapper_test.rb +6 -0
  34. data/test/mongoid_test.rb +55 -6
  35. data/test/multiple_test.rb +21 -0
  36. data/test/predicates_test.rb +6 -0
  37. data/test/sequel_test.rb +291 -0
  38. data/test/set_test.rb +14 -0
  39. data/test/simple_form_test.rb +0 -1
  40. data/test/support/view_test_helper.rb +4 -0
  41. data/test/test_helper.rb +23 -2
  42. data/test/value_test.rb +51 -21
  43. metadata +37 -8
  44. data/lib/enumerize/form_helper.rb +0 -23
  45. data/test/rspec_matcher_test.rb +0 -76
  46. data/test/rspec_spec.rb +0 -13
@@ -0,0 +1,291 @@
1
+ require 'test_helper'
2
+ require 'sequel'
3
+ require 'logger'
4
+ require 'jdbc/sqlite3' if RUBY_PLATFORM == 'java'
5
+
6
+ module SequelTest
7
+ silence_warnings do
8
+ DB = if RUBY_PLATFORM == 'java'
9
+ Sequel.connect('jdbc:sqlite::memory:')
10
+ else
11
+ Sequel.sqlite
12
+ end
13
+ DB.loggers << Logger.new(nil)
14
+ end
15
+
16
+ DB.create_table :users do
17
+ primary_key :id
18
+ String :sex
19
+ String :role
20
+ String :lambda_role
21
+ String :name
22
+ String :interests
23
+ String :status
24
+ String :account_type, default: "basic"
25
+ end
26
+
27
+ DB.create_table :documents do
28
+ primary_key :id
29
+ String :visibility
30
+ Time :created_at
31
+ Time :updated_at
32
+ end
33
+
34
+ class Document < Sequel::Model
35
+ extend Enumerize
36
+ enumerize :visibility, :in => [:public, :private, :protected], :scope => true, :default => :public
37
+ end
38
+
39
+ module RoleEnum
40
+ extend Enumerize
41
+ enumerize :role, :in => [:user, :admin], :default => :user, scope: :having_role
42
+ enumerize :lambda_role, :in => [:user, :admin], :default => lambda { :admin }
43
+ end
44
+
45
+ class User < Sequel::Model
46
+ plugin :serialization, :json, :interests
47
+ plugin :dirty
48
+ plugin :defaults_setter
49
+ plugin :validation_helpers
50
+ extend Enumerize
51
+ include RoleEnum
52
+
53
+ enumerize :sex, :in => [:male, :female]
54
+
55
+ enumerize :interests, :in => [:music, :sports, :dancing, :programming], :multiple => true
56
+
57
+ enumerize :status, :in => { active: 1, blocked: 2 }, scope: true
58
+
59
+ enumerize :account_type, :in => [:basic, :premium]
60
+ end
61
+
62
+ class UniqStatusUser < User
63
+ def validate
64
+ super
65
+ validates_unique :status
66
+ validates_presence :sex
67
+ end
68
+ end
69
+
70
+ describe Enumerize::SequelSupport do
71
+ it 'sets nil if invalid value is passed' do
72
+ user = User.new
73
+ user.sex = :invalid
74
+ user.sex.must_equal nil
75
+ end
76
+
77
+ it 'saves value' do
78
+ User.filter.delete
79
+ user = User.new
80
+ user.sex = :female
81
+ user.save
82
+ user.sex.must_equal 'female'
83
+ end
84
+
85
+ it 'loads value' do
86
+ User.filter.delete
87
+ User.create(:sex => :male)
88
+ store_translations(:en, :enumerize => {:sex => {:male => 'Male'}}) do
89
+ user = User.first
90
+ user.sex.must_equal 'male'
91
+ user.sex_text.must_equal 'Male'
92
+ end
93
+ end
94
+
95
+ it 'has default value' do
96
+ User.new.role.must_equal 'user'
97
+ User.new.values[:role].must_equal 'user'
98
+ end
99
+
100
+ it 'does not set default value for not selected attributes' do
101
+ User.filter.delete
102
+ User.create(:sex => :male)
103
+
104
+ assert_equal [:id], User.select(:id).first.values.keys
105
+ end
106
+
107
+ it 'has default value with lambda' do
108
+ User.new.lambda_role.must_equal 'admin'
109
+ User.new.values[:lambda_role].must_equal 'admin'
110
+ end
111
+ it 'uses after_initialize callback to set default value' do
112
+ User.filter.delete
113
+ User.create(sex: 'male', lambda_role: nil)
114
+
115
+ user = User.where(:sex => 'male').first
116
+ user.lambda_role.must_equal 'admin'
117
+ end
118
+
119
+ it 'uses default value from db column' do
120
+ User.new.account_type.must_equal 'basic'
121
+ end
122
+
123
+ it 'validates inclusion' do
124
+ user = User.new
125
+ user.role = 'wrong'
126
+ user.wont_be :valid?
127
+ user.errors[:role].must_include 'is not included in the list'
128
+ end
129
+
130
+ it 'validates inclusion on mass assignment' do
131
+ assert_raises Sequel::ValidationFailed do
132
+ User.create(role: 'wrong')
133
+ end
134
+ end
135
+
136
+ it "uses persisted value for validation if it hasn't been set" do
137
+ user = User.create :sex => :male
138
+ User[user.id].read_attribute_for_validation(:sex).must_equal 'male'
139
+ end
140
+
141
+ it 'is valid with empty string assigned' do
142
+ user = User.new
143
+ user.role = ''
144
+ user.must_be :valid?
145
+ end
146
+
147
+ it 'stores nil when empty string assigned' do
148
+ user = User.new
149
+ user.role = ''
150
+ user.values[:role].must_equal nil
151
+ end
152
+
153
+ it 'supports multiple attributes' do
154
+ user = User.new
155
+ user.interests ||= []
156
+ user.interests.must_be_empty
157
+ user.interests << "music"
158
+ user.interests.must_equal %w(music)
159
+ user.save
160
+
161
+ user = User[user.id]
162
+ user.interests.must_be_instance_of Enumerize::Set
163
+ user.interests.must_equal %w(music)
164
+ user.interests << "sports"
165
+ user.interests.must_equal %w(music sports)
166
+
167
+ user.interests = []
168
+ interests = user.interests
169
+ interests << "music"
170
+ interests.must_equal %w(music)
171
+ interests << "dancing"
172
+ interests.must_equal %w(music dancing)
173
+ end
174
+
175
+ it 'returns invalid multiple value for validation' do
176
+ user = User.new
177
+ user.interests << :music
178
+ user.interests << :invalid
179
+ values = user.read_attribute_for_validation(:interests)
180
+ values.must_equal %w(music invalid)
181
+ end
182
+
183
+ it 'validates multiple attributes' do
184
+ user = User.new
185
+ user.interests << :invalid
186
+ user.wont_be :valid?
187
+
188
+ user.interests = Object.new
189
+ user.wont_be :valid?
190
+
191
+ user.interests = ['music', '']
192
+ user.must_be :valid?
193
+ end
194
+
195
+ it 'stores custom values for multiple attributes' do
196
+ User.filter.delete
197
+
198
+ klass = Class.new(User)
199
+ klass.enumerize :interests, in: { music: 0, sports: 1, dancing: 2, programming: 3}, multiple: true
200
+
201
+ user = klass.new
202
+ user.interests << :music
203
+ user.interests.must_equal %w(music)
204
+ user.save
205
+
206
+ user = klass[user.id]
207
+ user.interests.must_equal %w(music)
208
+ end
209
+
210
+ it 'adds scope' do
211
+ User.filter.delete
212
+
213
+ user_1 = User.create(status: :active, role: :admin)
214
+ user_2 = User.create(status: :blocked)
215
+
216
+ User.with_status(:active).to_a.must_equal [user_1]
217
+ User.with_status(:blocked).to_a.must_equal [user_2]
218
+ User.with_status(:active, :blocked).to_set.must_equal [user_1, user_2].to_set
219
+
220
+ User.without_status(:active).to_a.must_equal [user_2]
221
+ User.without_status(:active, :blocked).to_a.must_equal []
222
+
223
+ User.having_role(:admin).to_a.must_equal [user_1]
224
+ end
225
+
226
+ it 'allows either key or value as valid' do
227
+ user_1 = User.new(status: :active)
228
+ user_2 = User.new(status: 1)
229
+ user_3 = User.new(status: '1')
230
+
231
+ user_1.status.must_equal 'active'
232
+ user_2.status.must_equal 'active'
233
+ user_3.status.must_equal 'active'
234
+
235
+ user_1.must_be :valid?
236
+ user_2.must_be :valid?
237
+ user_3.must_be :valid?
238
+ end
239
+
240
+ it 'supports defining enumerized attributes on abstract class' do
241
+ Document.filter.delete
242
+
243
+ document = Document.new
244
+ document.visibility = :protected
245
+ document.visibility.must_equal 'protected'
246
+ end
247
+
248
+ it 'supports defining enumerized scopes on abstract class' do
249
+ Document.filter.delete
250
+
251
+ document_1 = Document.create(visibility: :public)
252
+ document_2 = Document.create(visibility: :private)
253
+
254
+ Document.with_visibility(:public).to_a.must_equal [document_1]
255
+ end
256
+
257
+ it 'validates uniqueness' do
258
+ user = User.create(status: :active, sex: "male")
259
+
260
+ user = UniqStatusUser.new
261
+ user.sex = "male"
262
+ user.status = :active
263
+ user.valid?.must_equal false
264
+
265
+ user.errors[:status].wont_be :empty?
266
+ end
267
+
268
+ it "doesn't update record" do
269
+ Document.filter.delete
270
+
271
+ expected = Time.new(2010, 10, 10)
272
+
273
+ document = Document.new
274
+ document.updated_at = expected
275
+ document.save
276
+
277
+ document = Document.last
278
+ document.save
279
+
280
+ assert_equal expected, document.updated_at
281
+ end
282
+
283
+ it 'changes from dirty should be serialized as scalar values' do
284
+ user = User.create(:status => :active)
285
+ user.status = :blocked
286
+
287
+ expected = { status: [1, 2] }.to_yaml
288
+ assert_equal expected, user.column_changes.to_yaml
289
+ end
290
+ end
291
+ end
data/test/set_test.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'test_helper'
2
+ require 'yaml'
2
3
 
3
4
  describe Enumerize::Set do
4
5
  let(:klass) do
@@ -103,6 +104,12 @@ describe Enumerize::Set do
103
104
  end
104
105
  end
105
106
 
107
+ describe '#texts' do
108
+ it 'returns array of text values' do
109
+ set.texts.must_equal ['A']
110
+ end
111
+ end
112
+
106
113
  describe '#join' do
107
114
  it 'joins values' do
108
115
  set << :b
@@ -147,4 +154,11 @@ describe Enumerize::Set do
147
154
  set.wont_respond_to :some_method?
148
155
  end
149
156
  end
157
+
158
+ describe 'serialization' do
159
+ it 'is serialized to yaml as array' do
160
+ set << :a
161
+ assert_equal YAML.dump(%w(a)), YAML.dump(set)
162
+ end
163
+ end
150
164
  end
@@ -1,6 +1,5 @@
1
1
  require 'test_helper'
2
2
  require 'simple_form/version'
3
- require 'rails'
4
3
 
5
4
  class SimpleFormSpec < MiniTest::Spec
6
5
  include ViewTestHelper
@@ -1,6 +1,10 @@
1
1
  require 'active_support/concern'
2
2
  require 'active_support/testing/setup_and_teardown'
3
3
 
4
+ if defined?(ActionView::RoutingUrlFor)
5
+ ActionView::RoutingUrlFor.send(:include, ActionDispatch::Routing::UrlFor)
6
+ end
7
+
4
8
  module ViewTestHelper
5
9
  extend ActiveSupport::Concern
6
10
 
data/test/test_helper.rb CHANGED
@@ -2,12 +2,33 @@ require 'minitest/autorun'
2
2
  require 'minitest/spec'
3
3
  require 'active_support/core_ext/kernel/reporting'
4
4
  require 'active_model'
5
-
6
- $VERBOSE=true
5
+ require 'rails'
6
+ begin
7
+ require 'mongoid'
8
+ rescue LoadError
9
+ end
7
10
 
8
11
  module RailsAdmin
9
12
  end
10
13
 
14
+ require 'simple_form'
15
+ SimpleForm.setup {}
16
+
17
+ require 'formtastic'
18
+
19
+ module EnumerizeTest
20
+ class Application < Rails::Application
21
+ config.active_support.deprecation = :stderr
22
+ config.active_support.test_order = :random
23
+ config.eager_load = false
24
+ config.secret_key_base = 'secret'
25
+ end
26
+ end
27
+
28
+ EnumerizeTest::Application.initialize!
29
+
30
+ $VERBOSE=true
31
+
11
32
  require 'enumerize'
12
33
 
13
34
  Dir["#{File.dirname(__FILE__)}/support/*.rb"].each do |file|
data/test/value_test.rb CHANGED
@@ -1,15 +1,32 @@
1
1
  require 'test_helper'
2
+ require 'yaml'
2
3
 
3
4
  describe Enumerize::Value do
4
- let(:attr) { Struct.new(:values).new([]) }
5
- let(:value) { Enumerize::Value.new(attr, 'test_value') }
5
+ class Attr < Struct.new(:values)
6
+ end
7
+
8
+ let(:attr) { Attr.new([]) }
9
+ let(:val) { Enumerize::Value.new(attr, 'test_value', 1) }
6
10
 
7
11
  it 'is a string' do
8
- value.must_be_kind_of String
12
+ val.must_be_kind_of String
9
13
  end
10
14
 
11
- it 'is compared to string' do
12
- value.must_be :==, 'test_value'
15
+ describe 'equality' do
16
+ it 'is compared to string' do
17
+ val.must_be :==, 'test_value'
18
+ val.wont_be :==, 'not_value'
19
+ end
20
+
21
+ it 'is compared to symbol' do
22
+ val.must_be :==, :test_value
23
+ val.wont_be :==, :not_value
24
+ end
25
+
26
+ it 'is compared to integer' do
27
+ val.must_be :==, 1
28
+ val.wont_be :==, 2
29
+ end
13
30
  end
14
31
 
15
32
  describe 'translation' do
@@ -17,7 +34,13 @@ describe Enumerize::Value do
17
34
 
18
35
  it 'uses common translation' do
19
36
  store_translations(:en, :enumerize => {:attribute_name => {:test_value => "Common translation"}}) do
20
- value.text.must_be :==, "Common translation"
37
+ val.text.must_be :==, "Common translation"
38
+ end
39
+ end
40
+
41
+ it 'uses default translation from the "default" section if its present' do
42
+ store_translations(:en, :enumerize => {:defaults => {:attribute_name => {:test_value => "Common translation"}}}) do
43
+ val.text.must_be :==, "Common translation"
21
44
  end
22
45
  end
23
46
 
@@ -25,7 +48,7 @@ describe Enumerize::Value do
25
48
  attr.i18n_scopes = ["enumerize.model_name.attribute_name"]
26
49
 
27
50
  store_translations(:en, :enumerize => {:model_name => {:attribute_name => {:test_value => "Model Specific translation"}}}) do
28
- value.text.must_be :==, "Model Specific translation"
51
+ val.text.must_be :==, "Model Specific translation"
29
52
  end
30
53
  end
31
54
 
@@ -33,13 +56,13 @@ describe Enumerize::Value do
33
56
  attr.i18n_scopes = ["enumerize.model_name.attribute_name"]
34
57
 
35
58
  store_translations(:en, :enumerize => {:attribute_name => {:test_value => "Common translation"}, :model_name => {:attribute_name => {:test_value => "Model Specific translation"}}}) do
36
- value.text.must_be :==, "Model Specific translation"
59
+ val.text.must_be :==, "Model Specific translation"
37
60
  end
38
61
  end
39
62
 
40
63
  it 'uses simply humanized value when translation is undefined' do
41
64
  store_translations(:en, :enumerize => {}) do
42
- value.text.must_be :==, "Test value"
65
+ val.text.must_be :==, "Test value"
43
66
  end
44
67
  end
45
68
 
@@ -47,7 +70,7 @@ describe Enumerize::Value do
47
70
  attr.i18n_scopes = ["other.scope"]
48
71
 
49
72
  store_translations(:en, :other => {:scope => {:test_value => "Scope specific translation"}}) do
50
- value.text.must_be :==, "Scope specific translation"
73
+ val.text.must_be :==, "Scope specific translation"
51
74
  end
52
75
  end
53
76
 
@@ -55,53 +78,60 @@ describe Enumerize::Value do
55
78
  attr.i18n_scopes = ["nonexistent.scope", "other.scope"]
56
79
 
57
80
  store_translations(:en, :other => {:scope => {:test_value => "Scope specific translation"}}) do
58
- value.text.must_be :==, "Scope specific translation"
81
+ val.text.must_be :==, "Scope specific translation"
59
82
  end
60
83
  end
61
84
  end
62
85
 
63
86
  describe 'boolean methods comparison' do
64
87
  before do
65
- attr.values = [value, Enumerize::Value.new(attr, 'other_value')]
88
+ attr.values = [val, Enumerize::Value.new(attr, 'other_value')]
66
89
  end
67
90
 
68
91
  it 'returns true if value equals method' do
69
- value.test_value?.must_equal true
92
+ val.test_value?.must_equal true
70
93
  end
71
94
 
72
95
  it 'returns false if value does not equal method' do
73
- value.other_value?.must_equal false
96
+ val.other_value?.must_equal false
74
97
  end
75
98
 
76
99
  it 'raises NoMethodError if there are no values like boolean method' do
77
100
  proc {
78
- value.some_method?
101
+ val.some_method?
79
102
  }.must_raise NoMethodError
80
103
  end
81
104
 
82
105
  it 'raises ArgumentError if arguments are passed' do
83
106
  proc {
84
- value.other_value?('<3')
107
+ val.other_value?('<3')
85
108
  }.must_raise ArgumentError
86
109
  end
87
110
 
88
111
  it 'responds to methods for existing values' do
89
- value.must_respond_to :test_value?
90
- value.must_respond_to :other_value?
112
+ val.must_respond_to :test_value?
113
+ val.must_respond_to :other_value?
91
114
  end
92
115
 
93
116
  it 'returns a method object' do
94
- value.method(:test_value?).must_be_instance_of Method
117
+ val.method(:test_value?).must_be_instance_of Method
95
118
  end
96
119
 
97
120
  it "doesn't respond to a method for not existing value" do
98
- value.wont_respond_to :some_method?
121
+ val.wont_respond_to :some_method?
99
122
  end
100
123
  end
101
124
 
102
125
  describe 'serialization' do
126
+ let(:val) { Enumerize::Value.new(attr, 'test_value') }
127
+
103
128
  it 'should be serialized to yaml as string value' do
104
- assert_equal YAML.dump('test_value'), YAML.dump(value)
129
+ assert_equal YAML.dump('test_value'), YAML.dump(val)
130
+ end
131
+
132
+ it 'serializes with Marshal' do
133
+ dump_value = Marshal.dump(val)
134
+ Marshal.load(dump_value).must_equal 'test_value'
105
135
  end
106
136
  end
107
137
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumerize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Nartimov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-04 00:00:00.000000000 Z
11
+ date: 2016-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -32,10 +32,13 @@ extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
34
  - ".gitignore"
35
+ - ".rspec"
35
36
  - ".travis.yml"
36
37
  - CHANGELOG.md
37
38
  - Gemfile
38
- - Gemfile.rails4
39
+ - Gemfile.global
40
+ - Gemfile.mongo_mapper
41
+ - Gemfile.rails40
39
42
  - MIT-LICENSE
40
43
  - README.md
41
44
  - Rakefile
@@ -45,8 +48,8 @@ files:
45
48
  - lib/enumerize/attribute.rb
46
49
  - lib/enumerize/attribute_map.rb
47
50
  - lib/enumerize/base.rb
48
- - lib/enumerize/form_helper.rb
49
51
  - lib/enumerize/hooks/formtastic.rb
52
+ - lib/enumerize/hooks/sequel_dataset.rb
50
53
  - lib/enumerize/hooks/simple_form.rb
51
54
  - lib/enumerize/hooks/uniqueness.rb
52
55
  - lib/enumerize/integrations/rails_admin.rb
@@ -54,11 +57,18 @@ files:
54
57
  - lib/enumerize/integrations/rspec/matcher.rb
55
58
  - lib/enumerize/module.rb
56
59
  - lib/enumerize/module_attributes.rb
60
+ - lib/enumerize/mongoid.rb
57
61
  - lib/enumerize/predicatable.rb
58
62
  - lib/enumerize/predicates.rb
63
+ - lib/enumerize/scope/activerecord.rb
64
+ - lib/enumerize/scope/mongoid.rb
65
+ - lib/enumerize/scope/sequel.rb
66
+ - lib/enumerize/sequel.rb
59
67
  - lib/enumerize/set.rb
60
68
  - lib/enumerize/value.rb
61
69
  - lib/enumerize/version.rb
70
+ - spec/enumerize/integrations/rspec/matcher_spec.rb
71
+ - spec/spec_helper.rb
62
72
  - test/activerecord_test.rb
63
73
  - test/attribute_map_test.rb
64
74
  - test/attribute_test.rb
@@ -70,8 +80,7 @@ files:
70
80
  - test/multiple_test.rb
71
81
  - test/predicates_test.rb
72
82
  - test/rails_admin_test.rb
73
- - test/rspec_matcher_test.rb
74
- - test/rspec_spec.rb
83
+ - test/sequel_test.rb
75
84
  - test/set_test.rb
76
85
  - test/simple_form_test.rb
77
86
  - test/support/mock_controller.rb
@@ -97,8 +106,28 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
106
  version: '0'
98
107
  requirements: []
99
108
  rubyforge_project:
100
- rubygems_version: 2.2.0
109
+ rubygems_version: 2.4.6
101
110
  signing_key:
102
111
  specification_version: 4
103
112
  summary: Enumerated attributes with I18n and ActiveRecord/Mongoid/MongoMapper support
104
- test_files: []
113
+ test_files:
114
+ - spec/enumerize/integrations/rspec/matcher_spec.rb
115
+ - spec/spec_helper.rb
116
+ - test/activerecord_test.rb
117
+ - test/attribute_map_test.rb
118
+ - test/attribute_test.rb
119
+ - test/base_test.rb
120
+ - test/formtastic_test.rb
121
+ - test/module_attributes_test.rb
122
+ - test/mongo_mapper_test.rb
123
+ - test/mongoid_test.rb
124
+ - test/multiple_test.rb
125
+ - test/predicates_test.rb
126
+ - test/rails_admin_test.rb
127
+ - test/sequel_test.rb
128
+ - test/set_test.rb
129
+ - test/simple_form_test.rb
130
+ - test/support/mock_controller.rb
131
+ - test/support/view_test_helper.rb
132
+ - test/test_helper.rb
133
+ - test/value_test.rb
@@ -1,23 +0,0 @@
1
- # backport of https://github.com/rails/rails/commit/3be9e8a0c2187744b6c9879ca2836cef5ebed693
2
- if defined?(ActionView::Helpers::InstanceTag)
3
- ActionView::Helpers::InstanceTag.class_eval do
4
- def self.check_box_checked?(value, checked_value)
5
- case value
6
- when TrueClass, FalseClass
7
- value
8
- when NilClass
9
- false
10
- when Integer
11
- value != 0
12
- when String
13
- value == checked_value
14
- else
15
- if value.respond_to?(:include?)
16
- value.include?(checked_value)
17
- else
18
- value.to_i != 0
19
- end
20
- end
21
- end
22
- end
23
- end