enumerize 2.1.2 → 2.4.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 (62) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +10 -9
  3. data/CHANGELOG.md +50 -3
  4. data/Gemfile +2 -3
  5. data/Gemfile.global +1 -2
  6. data/Gemfile.mongo_mapper +2 -3
  7. data/Gemfile.rails60 +6 -0
  8. data/Gemfile.rails61 +6 -0
  9. data/README.md +37 -1
  10. data/Rakefile +2 -0
  11. data/lib/enumerize.rb +9 -0
  12. data/lib/enumerize/activemodel.rb +47 -0
  13. data/lib/enumerize/activerecord.rb +33 -3
  14. data/lib/enumerize/attribute.rb +19 -11
  15. data/lib/enumerize/attribute_map.rb +2 -0
  16. data/lib/enumerize/base.rb +6 -6
  17. data/lib/enumerize/hooks/formtastic.rb +4 -1
  18. data/lib/enumerize/hooks/sequel_dataset.rb +2 -0
  19. data/lib/enumerize/hooks/simple_form.rb +4 -1
  20. data/lib/enumerize/hooks/uniqueness.rb +5 -1
  21. data/lib/enumerize/integrations/rails_admin.rb +3 -1
  22. data/lib/enumerize/integrations/rspec.rb +2 -0
  23. data/lib/enumerize/integrations/rspec/matcher.rb +7 -2
  24. data/lib/enumerize/module.rb +2 -0
  25. data/lib/enumerize/module_attributes.rb +2 -0
  26. data/lib/enumerize/mongoid.rb +16 -0
  27. data/lib/enumerize/predicatable.rb +3 -1
  28. data/lib/enumerize/predicates.rb +2 -0
  29. data/lib/enumerize/scope/activerecord.rb +12 -0
  30. data/lib/enumerize/scope/mongoid.rb +11 -0
  31. data/lib/enumerize/scope/sequel.rb +12 -0
  32. data/lib/enumerize/sequel.rb +9 -4
  33. data/lib/enumerize/set.rb +2 -0
  34. data/lib/enumerize/utils.rb +12 -0
  35. data/lib/enumerize/value.rb +14 -15
  36. data/lib/enumerize/version.rb +1 -1
  37. data/lib/sequel/plugins/enumerize.rb +18 -0
  38. data/spec/enumerize/integrations/rspec/matcher_spec.rb +13 -10
  39. data/spec/spec_helper.rb +2 -0
  40. data/test/activemodel_test.rb +114 -0
  41. data/test/activerecord_test.rb +127 -5
  42. data/test/attribute_map_test.rb +2 -0
  43. data/test/attribute_test.rb +7 -0
  44. data/test/base_test.rb +35 -33
  45. data/test/formtastic_test.rb +25 -0
  46. data/test/module_attributes_test.rb +2 -0
  47. data/test/mongo_mapper_test.rb +12 -3
  48. data/test/mongoid_test.rb +30 -4
  49. data/test/multiple_test.rb +19 -11
  50. data/test/predicates_test.rb +12 -10
  51. data/test/rails_admin_test.rb +7 -5
  52. data/test/sequel_test.rb +62 -12
  53. data/test/set_test.rb +6 -4
  54. data/test/simple_form_test.rb +25 -0
  55. data/test/support/mock_controller.rb +2 -0
  56. data/test/support/shared_enums.rb +43 -0
  57. data/test/support/view_test_helper.rb +14 -1
  58. data/test/test_helper.rb +2 -0
  59. data/test/value_test.rb +33 -5
  60. metadata +15 -9
  61. data/Gemfile.rails42 +0 -7
  62. data/Gemfile.rails51 +0 -7
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  Formtastic::FormBuilder.action_class_finder = Formtastic::ActionClassFinder
@@ -42,6 +44,12 @@ class FormtasticSpec < MiniTest::Spec
42
44
  end
43
45
  end
44
46
 
47
+ class Registration < Struct.new(:sex)
48
+ extend Enumerize
49
+
50
+ enumerize :sex, in: [:male, :female]
51
+ end
52
+
45
53
  before { $VERBOSE = nil }
46
54
  after { $VERBOSE = true }
47
55
 
@@ -124,4 +132,21 @@ class FormtasticSpec < MiniTest::Spec
124
132
 
125
133
  assert_select 'input[type=text]'
126
134
  end
135
+
136
+ it 'renders select with enumerized values for non-ActiveModel object' do
137
+ concat(semantic_form_for(Registration.new, as: 'registration', url: '/') do |f|
138
+ f.input(:sex)
139
+ end)
140
+
141
+ assert_select 'select option[value=male]'
142
+ assert_select 'select option[value=female]'
143
+ end
144
+
145
+ it 'does not affect forms without object' do
146
+ concat(semantic_form_for('') do |f|
147
+ f.input(:name)
148
+ end)
149
+
150
+ assert_select 'input[type=text]'
151
+ end
127
152
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  class ModuleAttributesSpec < MiniTest::Spec
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  begin
@@ -6,8 +8,7 @@ silence_warnings do
6
8
  require 'mongo_mapper'
7
9
  end
8
10
 
9
- MongoMapper.connection = Mongo::Connection.new('localhost', 27017)
10
- MongoMapper.database = 'enumerize-test-suite-of-mongomapper'
11
+ MongoMapper.connection = Mongo::Client.new(['localhost:27017'], database: 'enumerize-test-suite-of-mongomapper')
11
12
 
12
13
  describe Enumerize do
13
14
  class MongoMapperUser
@@ -16,9 +17,11 @@ describe Enumerize do
16
17
 
17
18
  key :sex
18
19
  key :role
20
+ key :foo
19
21
 
20
- enumerize :sex, :in => %w[male female]
22
+ enumerize :sex, :in => %w[male female]
21
23
  enumerize :role, :in => %w[admin user], :default => 'user'
24
+ enumerize :foo, :in => %w[bar baz], :skip_validations => true
22
25
  end
23
26
 
24
27
  before { $VERBOSE = nil }
@@ -60,6 +63,12 @@ describe Enumerize do
60
63
  user.wont_be :valid?
61
64
  end
62
65
 
66
+ it 'does not validate inclusion when :skip_validations option passed' do
67
+ user = model.new
68
+ user.foo = 'wrong'
69
+ user.must_be :valid?
70
+ end
71
+
63
72
  it 'assigns value on loaded record' do
64
73
  model.delete_all
65
74
  model.create!(:sex => :male)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  begin
@@ -18,10 +20,16 @@ describe Enumerize do
18
20
 
19
21
  field :sex
20
22
  field :role
23
+ field :foo
24
+ field :skill
25
+
21
26
  enumerize :sex, :in => %w[male female], scope: true
22
27
  enumerize :status, :in => %w[notice warning error], scope: true
23
28
  enumerize :role, :in => %w[admin user], :default => 'user', scope: :having_role
24
29
  enumerize :mult, :in => %w[one two three four], :multiple => true
30
+ enumerize :foo, :in => %w[bar baz], :skip_validations => true
31
+ enumerize :skill, :in => { noob: 0, casual: 1, pro: 2 }, scope: :shallow
32
+ enumerize :account_type, :in => %w[basic premium], scope: :shallow
25
33
  end
26
34
 
27
35
  before { $VERBOSE = nil }
@@ -78,6 +86,20 @@ describe Enumerize do
78
86
  user.wont_be :valid?
79
87
  end
80
88
 
89
+ it 'does not validate inclusion when :skip_validations option passed' do
90
+ user = model.new
91
+ user.foo = 'wrong'
92
+ user.must_be :valid?
93
+ end
94
+
95
+ it 'sets value to enumerized field from db when record is reloaded' do
96
+ user = model.create!(mult: [:one])
97
+ model.find(user.id).update(mult: %i[two three])
98
+ user.mult.must_equal %w[one]
99
+ user.reload
100
+ user.mult.must_equal %w[two three]
101
+ end
102
+
81
103
  it 'assigns value on loaded record' do
82
104
  model.delete_all
83
105
  model.create!(:sex => :male)
@@ -99,17 +121,21 @@ describe Enumerize do
99
121
 
100
122
  user_1 = model.create!(sex: :male, role: :admin)
101
123
  user_2 = model.create!(sex: :female, role: :user)
124
+ user_3 = model.create!(skill: :pro, account_type: :premium)
102
125
 
103
126
  model.with_sex(:male).to_a.must_equal [user_1]
104
127
  model.with_sex(:female).to_a.must_equal [user_2]
105
128
  model.with_sex(:male, :female).to_set.must_equal [user_1, user_2].to_set
106
129
 
107
- model.without_sex(:male).to_a.must_equal [user_2]
108
- model.without_sex(:female).to_a.must_equal [user_1]
109
- model.without_sex(:male, :female).to_a.must_equal []
130
+ model.without_sex(:male).to_set.must_equal [user_2, user_3].to_set
131
+ model.without_sex(:female).to_set.must_equal [user_1, user_3].to_set
132
+ model.without_sex(:male, :female).to_a.must_equal [user_3]
110
133
 
111
134
  model.having_role(:admin).to_a.must_equal [user_1]
112
- model.having_role(:user).to_a.must_equal [user_2]
135
+ model.having_role(:user).to_a.must_equal [user_2, user_3]
136
+
137
+ model.pro.to_a.must_equal [user_3]
138
+ model.premium.to_a.must_equal [user_3]
113
139
  end
114
140
 
115
141
  it 'chains scopes' do
@@ -1,57 +1,65 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  describe Enumerize::Base do
4
- let(:klass) do
6
+ let(:kklass) do
5
7
  Class.new do
6
8
  extend Enumerize
7
9
  end
8
10
  end
9
11
 
10
12
  let(:subklass) do
11
- Class.new(klass)
13
+ Class.new(kklass)
12
14
  end
13
15
 
14
- let(:object) { klass.new }
16
+ let(:object) { kklass.new }
15
17
 
16
18
  it 'returns [] when not set' do
17
- klass.enumerize :foos, in: %w(a b), multiple: true
19
+ kklass.enumerize :foos, in: %w(a b), multiple: true
18
20
  object.foos.must_equal []
19
21
  end
20
22
 
21
23
  it 'returns setted array' do
22
- klass.enumerize :foos, in: %w(a b c), multiple: true
24
+ kklass.enumerize :foos, in: %w(a b c), multiple: true
23
25
  object.foos = %w(a c)
24
26
  object.foos.must_equal %w(a c)
25
27
  end
26
28
 
27
29
  it 'sets default value as single value' do
28
- klass.enumerize :foos, in: %w(a b c), default: 'b', multiple: true
30
+ kklass.enumerize :foos, in: %w(a b c), default: 'b', multiple: true
29
31
  object.foos.must_equal %w(b)
30
32
  end
31
33
 
32
34
  it 'sets default value as array of one element' do
33
- klass.enumerize :foos, in: %w(a b c), default: %w(b), multiple: true
35
+ kklass.enumerize :foos, in: %w(a b c), default: %w(b), multiple: true
34
36
  object.foos.must_equal %w(b)
35
37
  end
36
38
 
37
39
  it 'sets default value as array of several elements' do
38
- klass.enumerize :foos, in: %w(a b c), default: %w(b c), multiple: true
40
+ kklass.enumerize :foos, in: %w(a b c), default: %w(b c), multiple: true
39
41
  object.foos.must_equal %w(b c)
40
42
  end
41
43
 
42
44
  it "doesn't define _text method" do
43
- klass.enumerize :foos, in: %w(a b c), multiple: true
45
+ kklass.enumerize :foos, in: %w(a b c), multiple: true
44
46
  object.wont_respond_to :foos_text
45
47
  end
46
48
 
47
49
  it "doesn't define _value method" do
48
- klass.enumerize :foos, in: %w(a b c), multiple: true
50
+ kklass.enumerize :foos, in: %w(a b c), multiple: true
49
51
  object.wont_respond_to :foos_value
50
52
  end
51
53
 
52
54
  it "cannot define multiple with scope" do
53
55
  assert_raises ArgumentError do
54
- klass.enumerize :foos, in: %w(a b c), multiple: true, scope: true
56
+ kklass.enumerize :foos, in: %w(a b c), multiple: true, scope: true
55
57
  end
56
58
  end
59
+
60
+ it 'assign a name with the first letter capitalized' do
61
+ kklass.enumerize :Foos, in: %w(a b c), multiple: true
62
+ object.Foos = %w(a c)
63
+ object.Foos.must_equal %w(a c)
64
+ end
57
65
  end
@@ -1,48 +1,50 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  describe Enumerize::Predicates do
4
- let(:klass) do
6
+ let(:kklass) do
5
7
  Class.new do
6
8
  extend Enumerize
7
9
  end
8
10
  end
9
11
 
10
- let(:object) { klass.new }
12
+ let(:object) { kklass.new }
11
13
 
12
14
  it 'creates predicate methods' do
13
- klass.enumerize(:foo, in: %w(a b), predicates: true)
15
+ kklass.enumerize(:foo, in: %w(a b), predicates: true)
14
16
  object.must_respond_to :a?
15
17
  object.must_respond_to :b?
16
18
  end
17
19
 
18
20
  it 'creates predicate methods when enumerized values have dash in it' do
19
- klass.enumerize(:foo, in: %w(foo-bar bar-foo), predicates: true)
21
+ kklass.enumerize(:foo, in: %w(foo-bar bar-foo), predicates: true)
20
22
  object.must_respond_to :foo_bar?
21
23
  object.must_respond_to :bar_foo?
22
24
  end
23
25
 
24
26
  it 'creates predicate methods on multiple attribute' do
25
- klass.enumerize(:foo, in: %w(a b), predicates: true, multiple: true)
27
+ kklass.enumerize(:foo, in: %w(a b), predicates: true, multiple: true)
26
28
  object.must_respond_to :a?
27
29
  object.must_respond_to :b?
28
30
  end
29
31
 
30
32
  it 'checks values' do
31
- klass.enumerize(:foo, in: %w(a b), predicates: true)
33
+ kklass.enumerize(:foo, in: %w(a b), predicates: true)
32
34
  object.foo = 'a'
33
35
  object.a?.must_equal true
34
36
  object.b?.must_equal false
35
37
  end
36
38
 
37
39
  it 'checks values on multiple attribute' do
38
- klass.enumerize(:foo, in: %w(a b), predicates: true, multiple: true)
40
+ kklass.enumerize(:foo, in: %w(a b), predicates: true, multiple: true)
39
41
  object.foo << :a
40
42
  object.a?.must_equal true
41
43
  object.b?.must_equal false
42
44
  end
43
45
 
44
46
  it 'prefixes methods' do
45
- klass.enumerize(:foo, in: %w(a b), predicates: { prefix: 'bar' })
47
+ kklass.enumerize(:foo, in: %w(a b), predicates: { prefix: 'bar' })
46
48
  object.wont_respond_to :a?
47
49
  object.wont_respond_to :b?
48
50
  object.must_respond_to :bar_a?
@@ -50,13 +52,13 @@ describe Enumerize::Predicates do
50
52
  end
51
53
 
52
54
  it 'accepts only option' do
53
- klass.enumerize(:foo, in: %w(a b), predicates: { only: :a })
55
+ kklass.enumerize(:foo, in: %w(a b), predicates: { only: :a })
54
56
  object.must_respond_to :a?
55
57
  object.wont_respond_to :b?
56
58
  end
57
59
 
58
60
  it 'accepts except option' do
59
- klass.enumerize(:foo, in: %w(a b), predicates: { except: :a })
61
+ kklass.enumerize(:foo, in: %w(a b), predicates: { except: :a })
60
62
  object.wont_respond_to :a?
61
63
  object.must_respond_to :b?
62
64
  end
@@ -1,25 +1,27 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  class RailsAdminSpec < MiniTest::Spec
4
- let(:klass) do
6
+ let(:kklass) do
5
7
  Class.new do
6
8
  extend Enumerize
7
9
  end
8
10
  end
9
11
 
10
- let(:object) { klass.new }
12
+ let(:object) { kklass.new }
11
13
 
12
14
  it 'defines enum method' do
13
15
  store_translations(:en, :enumerize => {:foo => {:a => 'a text', :b => 'b text'}}) do
14
- klass.enumerize(:foo, in: [:a, :b])
16
+ kklass.enumerize(:foo, in: [:a, :b])
15
17
  object.foo_enum.must_equal [['a text', 'a'], ['b text', 'b']]
16
18
  end
17
19
  end
18
20
 
19
21
  it 'defines enum properly for custom values enumerations' do
20
22
  store_translations(:en, :enumerize => {:foo => {:a => 'a text', :b => 'b text'}}) do
21
- klass.enumerize(:foo, in: {:a => 1, :b => 2})
22
- object.foo_enum.must_equal [['a text', 1], ['b text', 2]]
23
+ kklass.enumerize(:foo, in: {:a => 1, :b => 2})
24
+ object.foo_enum.must_equal [['a text', 'a'], ['b text', 'b']]
23
25
  end
24
26
  end
25
27
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
  require 'sequel'
3
5
  require 'logger'
@@ -21,7 +23,9 @@ module SequelTest
21
23
  String :name
22
24
  String :interests
23
25
  String :status
26
+ Integer :skill
24
27
  String :account_type, default: "basic"
28
+ String :foo
25
29
  end
26
30
 
27
31
  DB.create_table :documents do
@@ -32,7 +36,7 @@ module SequelTest
32
36
  end
33
37
 
34
38
  class Document < Sequel::Model
35
- extend Enumerize
39
+ plugin :enumerize
36
40
  enumerize :visibility, :in => [:public, :private, :protected], :scope => true, :default => :public
37
41
  end
38
42
 
@@ -47,15 +51,17 @@ module SequelTest
47
51
  plugin :dirty
48
52
  plugin :defaults_setter
49
53
  plugin :validation_helpers
50
- extend Enumerize
54
+ plugin :enumerize
51
55
  include RoleEnum
52
56
 
53
- enumerize :sex, :in => [:male, :female]
57
+ enumerize :sex, :in => [:male, :female], scope: :shallow
54
58
 
55
59
  enumerize :interests, :in => [:music, :sports, :dancing, :programming], :multiple => true
56
60
 
57
61
  enumerize :status, :in => { active: 1, blocked: 2 }, scope: true
58
62
 
63
+ enumerize :skill, :in => { noob: 0, casual: 1, pro: 2 }, scope: :shallow
64
+
59
65
  enumerize :account_type, :in => [:basic, :premium]
60
66
  end
61
67
 
@@ -67,6 +73,22 @@ module SequelTest
67
73
  end
68
74
  end
69
75
 
76
+ class SkipValidationsUser < Sequel::Model(:users)
77
+ include SkipValidationsEnum
78
+ end
79
+
80
+ class DoNotSkipValidationsUser < Sequel::Model(:users)
81
+ include DoNotSkipValidationsEnum
82
+ end
83
+
84
+ class SkipValidationsLambdaUser < Sequel::Model(:users)
85
+ include SkipValidationsLambdaEnum
86
+ end
87
+
88
+ class SkipValidationsLambdaWithParamUser < Sequel::Model(:users)
89
+ include SkipValidationsLambdaWithParamEnum
90
+ end
91
+
70
92
  describe Enumerize::SequelSupport do
71
93
  it 'sets nil if invalid value is passed' do
72
94
  user = User.new
@@ -75,7 +97,7 @@ module SequelTest
75
97
  end
76
98
 
77
99
  it 'saves value' do
78
- User.filter.delete
100
+ User.filter{ true }.delete
79
101
  user = User.new
80
102
  user.sex = :female
81
103
  user.save
@@ -83,7 +105,7 @@ module SequelTest
83
105
  end
84
106
 
85
107
  it 'loads value' do
86
- User.filter.delete
108
+ User.filter{ true }.delete
87
109
  User.create(:sex => :male)
88
110
  store_translations(:en, :enumerize => {:sex => {:male => 'Male'}}) do
89
111
  user = User.first
@@ -98,7 +120,7 @@ module SequelTest
98
120
  end
99
121
 
100
122
  it 'does not set default value for not selected attributes' do
101
- User.filter.delete
123
+ User.filter{ true }.delete
102
124
  User.create(:sex => :male)
103
125
 
104
126
  assert_equal [:id], User.select(:id).first.values.keys
@@ -109,7 +131,7 @@ module SequelTest
109
131
  User.new.values[:lambda_role].must_equal 'admin'
110
132
  end
111
133
  it 'uses after_initialize callback to set default value' do
112
- User.filter.delete
134
+ User.filter{ true }.delete
113
135
  User.create(sex: 'male', lambda_role: nil)
114
136
 
115
137
  user = User.where(:sex => 'male').first
@@ -150,6 +172,31 @@ module SequelTest
150
172
  user.values[:role].must_be_nil
151
173
  end
152
174
 
175
+ it 'validates inclusion when :skip_validations = false' do
176
+ user = DoNotSkipValidationsUser.new
177
+ user.foo = 'wrong'
178
+ user.wont_be :valid?
179
+ user.errors[:foo].must_include 'is not included in the list'
180
+ end
181
+
182
+ it 'does not validate inclusion when :skip_validations = true' do
183
+ user = SkipValidationsUser.new
184
+ user.foo = 'wrong'
185
+ user.must_be :valid?
186
+ end
187
+
188
+ it 'supports :skip_validations option as lambda' do
189
+ user = SkipValidationsLambdaUser.new
190
+ user.foo = 'wrong'
191
+ user.must_be :valid?
192
+ end
193
+
194
+ it 'supports :skip_validations option as lambda with a parameter' do
195
+ user = SkipValidationsLambdaWithParamUser.new
196
+ user.foo = 'wrong'
197
+ user.must_be :valid?
198
+ end
199
+
153
200
  it 'supports multiple attributes' do
154
201
  user = User.new
155
202
  user.interests ||= []
@@ -193,7 +240,7 @@ module SequelTest
193
240
  end
194
241
 
195
242
  it 'stores custom values for multiple attributes' do
196
- User.filter.delete
243
+ User.filter{ true }.delete
197
244
 
198
245
  klass = Class.new(User)
199
246
  klass.enumerize :interests, in: { music: 0, sports: 1, dancing: 2, programming: 3}, multiple: true
@@ -208,10 +255,11 @@ module SequelTest
208
255
  end
209
256
 
210
257
  it 'adds scope' do
211
- User.filter.delete
258
+ User.filter{ true }.delete
212
259
 
213
260
  user_1 = User.create(status: :active, role: :admin)
214
261
  user_2 = User.create(status: :blocked)
262
+ user_3 = User.create(sex: :male, skill: :pro)
215
263
 
216
264
  User.with_status(:active).to_a.must_equal [user_1]
217
265
  User.with_status(:blocked).to_a.must_equal [user_2]
@@ -221,6 +269,8 @@ module SequelTest
221
269
  User.without_status(:active, :blocked).to_a.must_equal []
222
270
 
223
271
  User.having_role(:admin).to_a.must_equal [user_1]
272
+ User.male.to_a.must_equal [user_3]
273
+ User.pro.to_a.must_equal [user_3]
224
274
  end
225
275
 
226
276
  it 'allows either key or value as valid' do
@@ -238,7 +288,7 @@ module SequelTest
238
288
  end
239
289
 
240
290
  it 'supports defining enumerized attributes on abstract class' do
241
- Document.filter.delete
291
+ Document.filter{ true }.delete
242
292
 
243
293
  document = Document.new
244
294
  document.visibility = :protected
@@ -246,7 +296,7 @@ module SequelTest
246
296
  end
247
297
 
248
298
  it 'supports defining enumerized scopes on abstract class' do
249
- Document.filter.delete
299
+ Document.filter{ true }.delete
250
300
 
251
301
  document_1 = Document.create(visibility: :public)
252
302
  document_2 = Document.create(visibility: :private)
@@ -266,7 +316,7 @@ module SequelTest
266
316
  end
267
317
 
268
318
  it "doesn't update record" do
269
- Document.filter.delete
319
+ Document.filter{ true }.delete
270
320
 
271
321
  expected = Time.new(2010, 10, 10)
272
322