enumerate_it 1.3.0 → 1.3.1.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,30 +1,31 @@
1
1
  # encoding: utf-8
2
+
2
3
  module EnumerateIt
3
4
  module ClassMethods
4
5
  def has_enumeration_for(attribute, options = {})
5
- self.enumerations = self.enumerations.dup
6
+ self.enumerations = enumerations.dup
6
7
 
7
- define_enumeration_class attribute, options
8
- create_enumeration_humanize_method options[:with], attribute
9
- store_enumeration options[:with], attribute
8
+ define_enumeration_class(attribute, options)
9
+ create_enumeration_humanize_method(options[:with], attribute)
10
+ store_enumeration(options[:with], attribute)
10
11
 
11
- unless options[:skip_validation]
12
- set_validations attribute, options
13
- end
12
+ handle_options(attribute, options)
13
+ end
14
+
15
+ private
16
+
17
+ def handle_options(attribute, options)
18
+ set_validations(attribute, options) unless options[:skip_validation]
14
19
 
15
20
  if options[:create_helpers]
16
- create_helper_methods options[:with], attribute, options[:create_helpers]
17
- create_mutator_methods options[:with], attribute, options[:create_helpers]
18
- create_polymorphic_methods options[:with], attribute, options[:create_helpers]
21
+ %w(create_helper_methods create_mutator_methods create_polymorphic_methods).each do |method|
22
+ send(method, options[:with], attribute, options[:create_helpers])
23
+ end
19
24
  end
20
25
 
21
- if options[:create_scopes]
22
- create_scopes options[:with], attribute, options[:create_scopes]
23
- end
26
+ create_scopes options[:with], attribute, options[:create_scopes] if options[:create_scopes]
24
27
  end
25
28
 
26
- private
27
-
28
29
  def store_enumeration(klass, attribute)
29
30
  enumerations[attribute] = klass
30
31
  end
@@ -32,7 +33,7 @@ module EnumerateIt
32
33
  def create_enumeration_humanize_method(klass, attribute_name)
33
34
  class_eval do
34
35
  define_method "#{attribute_name}_humanize" do
35
- values = klass.enumeration.values.detect { |v| v[0] == self.send(attribute_name) }
36
+ values = klass.enumeration.values.detect { |v| v[0] == send(attribute_name) }
36
37
 
37
38
  values ? klass.translate(values[1]) : nil
38
39
  end
@@ -45,7 +46,7 @@ module EnumerateIt
45
46
  class_eval do
46
47
  klass.enumeration.keys.each do |option|
47
48
  define_method "#{prefix_name}#{option}?" do
48
- self.send(attribute_name) == klass.enumeration[option].first
49
+ send(attribute_name) == klass.enumeration[option].first
49
50
  end
50
51
  end
51
52
  end
@@ -56,7 +57,7 @@ module EnumerateIt
56
57
 
57
58
  klass.enumeration.keys.each do |key|
58
59
  if respond_to? :scope
59
- scope "#{prefix_name}#{key}", lambda { where(attribute_name => klass.enumeration[key].first) }
60
+ scope "#{prefix_name}#{key}", -> { where(attribute_name => klass.enumeration[key].first) }
60
61
  end
61
62
  end
62
63
  end
@@ -67,7 +68,7 @@ module EnumerateIt
67
68
  class_eval do
68
69
  klass.enumeration.each_pair do |key, values|
69
70
  define_method "#{prefix_name}#{key}!" do
70
- self.send "#{attribute_name}=", values.first
71
+ send "#{attribute_name}=", values.first
71
72
  end
72
73
  end
73
74
  end
@@ -77,11 +78,11 @@ module EnumerateIt
77
78
  return unless helpers.is_a?(Hash) && helpers[:polymorphic]
78
79
  options = helpers[:polymorphic]
79
80
  suffix = options.is_a?(Hash) && options[:suffix]
80
- suffix ||= "_object"
81
+ suffix ||= '_object'
81
82
 
82
83
  class_eval do
83
84
  define_method "#{attribute_name}#{suffix}" do
84
- value = self.public_send(attribute_name)
85
+ value = public_send(attribute_name)
85
86
 
86
87
  klass.const_get(klass.key_for(value).to_s.camelize).new if value
87
88
  end
@@ -89,14 +90,21 @@ module EnumerateIt
89
90
  end
90
91
 
91
92
  def define_enumeration_class(attribute, options)
92
- if options[:with].nil?
93
- inner_enum_class_name = attribute.to_s.camelize.to_sym
94
- options[:with] = self.constants.include?(inner_enum_class_name) ? self.const_get(inner_enum_class_name) : attribute.to_s.camelize.constantize
93
+ return if options[:with]
94
+
95
+ inner_enum_class_name = attribute.to_s.camelize.to_sym
96
+
97
+ options[:with] = if constants.include?(inner_enum_class_name)
98
+ const_get(inner_enum_class_name)
99
+ else
100
+ attribute.to_s.camelize.constantize
95
101
  end
96
102
  end
97
103
 
98
104
  def set_validations(attribute, options)
99
- validates_inclusion_of(attribute, in: options[:with].list, allow_blank: true) if self.respond_to?(:validates_inclusion_of)
105
+ if respond_to?(:validates_inclusion_of)
106
+ validates_inclusion_of(attribute, in: options[:with].list, allow_blank: true)
107
+ end
100
108
 
101
109
  if options[:required] && respond_to?(:validates_presence_of)
102
110
  opts = options[:required].is_a?(Hash) ? options[:required] : {}
@@ -1,3 +1,3 @@
1
1
  module EnumerateIt
2
- VERSION = '1.3.0'
2
+ VERSION = '1.3.1.rc1'.freeze
3
3
  end
@@ -9,14 +9,14 @@ module EnumerateIt
9
9
 
10
10
  class_option :lang, type: 'string', desc: 'Lang to use in i18n', default: 'en'
11
11
 
12
- desc "Creates a locale file on config/locales"
12
+ desc 'Creates a locale file on config/locales'
13
13
  def create_locale
14
- template "locale.yml", File.join('config/locales', "#{singular_name}.yml")
14
+ template 'locale.yml', File.join('config/locales', "#{singular_name}.yml")
15
15
  end
16
16
 
17
- desc "Creates an initializer file on config/initializers that extends ActiveRecord::Base with Enumerate_it"
17
+ desc 'Creates an initializer file that extends ActiveRecord::Base with Enumerate_it'
18
18
  def create_enumerate_it
19
- template "enumerate_it.rb", File.join('app/enumerations', "#{singular_name}.rb")
19
+ template 'enumerate_it.rb', File.join('app/enumerations', "#{singular_name}.rb")
20
20
  end
21
21
 
22
22
  protected
@@ -37,9 +37,7 @@ module EnumerateIt
37
37
  if attributes.first.type == :string
38
38
  attributes.map(&:name)
39
39
  else
40
- attributes.map do |attribute|
41
- [attribute.name, attribute.type]
42
- end
40
+ attributes.map { |attribute| [attribute.name, attribute.type] }
43
41
  end
44
42
  end
45
43
  end
@@ -4,7 +4,7 @@ module EnumerateIt
4
4
  source_root File.expand_path('../templates', __FILE__)
5
5
 
6
6
  def copy_initializer_file
7
- template "enumerate_it_initializer.rb", File.join('config/initializers/', "enumerate_it.rb")
7
+ template 'enumerate_it_initializer.rb', File.join('config/initializers/', 'enumerate_it.rb')
8
8
  end
9
9
  end
10
10
  end
@@ -3,55 +3,57 @@
3
3
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
4
4
 
5
5
  describe EnumerateIt::Base do
6
- it "creates constants for each enumeration value" do
7
- [TestEnumeration::VALUE_1, TestEnumeration::VALUE_2, TestEnumeration::VALUE_3].each_with_index do |constant, idx|
6
+ it 'creates constants for each enumeration value' do
7
+ constants = [TestEnumeration::VALUE_1, TestEnumeration::VALUE_2, TestEnumeration::VALUE_3]
8
+
9
+ constants.each_with_index do |constant, idx|
8
10
  expect(constant).to eq((idx + 1).to_s)
9
11
  end
10
12
  end
11
13
 
12
- it "creates constants for camel case values" do
14
+ it 'creates constants for camel case values' do
13
15
  expect(TestEnumerationWithCamelCase::IPHONE).to eq('iPhone')
14
16
  end
15
17
 
16
- it "creates constants replacing its dashes with underscores" do
18
+ it 'creates constants replacing its dashes with underscores' do
17
19
  expect(TestEnumerationWithDash::PT_BR).to eq('pt-BR')
18
20
  end
19
21
 
20
- describe ".list" do
22
+ describe '.list' do
21
23
  it "creates a method that returns the allowed values in the enumeration's class" do
22
- expect(TestEnumeration.list).to eq(['1', '2', '3'])
24
+ expect(TestEnumeration.list).to eq(%w(1 2 3))
23
25
  end
24
26
 
25
- context "specifying a default sort mode" do
27
+ context 'specifying a default sort mode' do
26
28
  subject { create_enumeration_class_with_sort_mode(sort_mode).list }
27
29
 
28
- context "by value" do
30
+ context 'by value' do
29
31
  let(:sort_mode) { :value }
30
32
 
31
33
  it { should eq(%w(0 1 2 3)) }
32
34
  end
33
35
 
34
- context "by name" do
36
+ context 'by name' do
35
37
  let(:sort_mode) { :name }
36
38
 
37
39
  it { should eq(%w(2 1 3 0)) }
38
40
  end
39
41
 
40
- context "by translation" do
42
+ context 'by translation' do
41
43
  let(:sort_mode) { :translation }
42
44
 
43
45
  it { should eq(%w(3 2 0 1)) }
44
46
  end
45
47
 
46
- context "by nothing" do
48
+ context 'by nothing' do
47
49
  let(:sort_mode) { :none }
48
50
 
49
51
  it { should eq(%w(1 2 3 0)) }
50
52
  end
51
53
  end
52
- end
54
+ end
53
55
 
54
- it "creates a method that returns the enumeration specification" do
56
+ it 'creates a method that returns the enumeration specification' do
55
57
  expect(TestEnumeration.enumeration).to eq(
56
58
  value_1: ['1', 'Hey, I am 1!'],
57
59
  value_2: ['2', 'Hey, I am 2!'],
@@ -59,29 +61,29 @@ describe EnumerateIt::Base do
59
61
  )
60
62
  end
61
63
 
62
- describe ".length" do
63
- it "returns the length of the enumeration" do
64
+ describe '.length' do
65
+ it 'returns the length of the enumeration' do
64
66
  expect(TestEnumeration.length).to eq(3)
65
67
  end
66
68
  end
67
69
 
68
- describe ".each_translation" do
70
+ describe '.each_translation' do
69
71
  it "yields each enumeration's value translation" do
70
72
  translations = []
71
73
  TestEnumeration.each_translation do |translation|
72
74
  translations << translation
73
75
  end
74
- expect(translations).to eq(["Hey, I am 1!", "Hey, I am 2!", "Hey, I am 3!"])
76
+ expect(translations).to eq(['Hey, I am 1!', 'Hey, I am 2!', 'Hey, I am 3!'])
75
77
  end
76
78
  end
77
79
 
78
- describe ".translations" do
79
- it "returns all translations" do
80
- expect(TestEnumeration.translations).to eq(["Hey, I am 1!", "Hey, I am 2!", "Hey, I am 3!"])
80
+ describe '.translations' do
81
+ it 'returns all translations' do
82
+ expect(TestEnumeration.translations).to eq(['Hey, I am 1!', 'Hey, I am 2!', 'Hey, I am 3!'])
81
83
  end
82
84
  end
83
85
 
84
- describe ".each_value" do
86
+ describe '.each_value' do
85
87
  it "yields each enumeration's value" do
86
88
  values = []
87
89
  TestEnumeration.each_value do |value|
@@ -91,151 +93,161 @@ describe EnumerateIt::Base do
91
93
  end
92
94
  end
93
95
 
94
- describe ".to_a" do
95
- it "returns an array with the values and human representations" do
96
- expect(TestEnumeration.to_a).to eq([['Hey, I am 1!', '1'], ['Hey, I am 2!', '2'], ['Hey, I am 3!', '3']])
96
+ describe '.to_a' do
97
+ it 'returns an array with the values and human representations' do
98
+ expect(TestEnumeration.to_a)
99
+ .to eq([['Hey, I am 1!', '1'], ['Hey, I am 2!', '2'], ['Hey, I am 3!', '3']])
97
100
  end
98
101
 
99
- it "translates the available values" do
102
+ it 'translates the available values' do
100
103
  I18n.locale = :en
101
104
  expect(TestEnumerationWithoutArray.to_a).to eq([['First Value', '1'], ['Value Two', '2']])
102
105
  I18n.locale = :pt
103
106
  expect(TestEnumerationWithoutArray.to_a).to eq([['Primeiro Valor', '1'], ['Value Two', '2']])
104
107
  end
105
108
 
106
- it "can be extended from the enumeration class" do
107
- expect(TestEnumerationWithExtendedBehaviour.to_a).to eq([['Second', '2'],['First','1']])
109
+ it 'can be extended from the enumeration class' do
110
+ expect(TestEnumerationWithExtendedBehaviour.to_a).to eq([%w(Second 2), %w(First 1)])
108
111
  end
109
112
  end
110
113
 
111
- describe ".to_json" do
112
- it "gives a valid json back" do
114
+ describe '.to_json' do
115
+ it 'gives a valid json back' do
113
116
  I18n.locale = :inexsistent
114
- expect(TestEnumerationWithoutArray.to_json).to eq('[{"value":"1","label":"Value One"},{"value":"2","label":"Value Two"}]')
117
+ expect(TestEnumerationWithoutArray.to_json)
118
+ .to eq('[{"value":"1","label":"Value One"},{"value":"2","label":"Value Two"}]')
115
119
  end
116
120
 
117
- it "give translated values when available" do
121
+ it 'give translated values when available' do
118
122
  I18n.locale = :pt
119
- expect(TestEnumerationWithoutArray.to_json).to eq('[{"value":"1","label":"Primeiro Valor"},{"value":"2","label":"Value Two"}]')
123
+ expect(TestEnumerationWithoutArray.to_json)
124
+ .to eq('[{"value":"1","label":"Primeiro Valor"},{"value":"2","label":"Value Two"}]')
120
125
  end
121
126
  end
122
127
 
123
- describe ".t" do
124
- it "translates a given value" do
128
+ describe '.t' do
129
+ it 'translates a given value' do
125
130
  I18n.locale = :pt
126
131
  expect(TestEnumerationWithoutArray.t('1')).to eq('Primeiro Valor')
127
132
  end
128
133
  end
129
134
 
130
- describe ".to_range" do
135
+ describe '.to_range' do
131
136
  it "returns a Range object containing the enumeration's value interval" do
132
- expect(TestEnumeration.to_range).to eq("1".."3")
137
+ expect(TestEnumeration.to_range).to eq('1'..'3')
133
138
  end
134
139
  end
135
140
 
136
- describe ".values_for" do
137
- it "returns an array with the corresponding values for a string array representing some of the enumeration's values" do
138
- expect(TestEnumeration.values_for(%w(VALUE_1 VALUE_2))).to eq([TestEnumeration::VALUE_1, TestEnumeration::VALUE_2])
141
+ describe '.values_for' do
142
+ it "returns an array representing some of the enumeration's values" do
143
+ expect(TestEnumeration.values_for(%w(VALUE_1 VALUE_2)))
144
+ .to eq([TestEnumeration::VALUE_1, TestEnumeration::VALUE_2])
139
145
  end
140
146
 
141
- it "returns a nil value if the a constant named after one of the given strings cannot be found" do
142
- expect(TestEnumeration.values_for(%w(VALUE_1 THIS_IS_WRONG))).to eq([TestEnumeration::VALUE_1, nil])
147
+ it 'returns nil if the a constant named after one of the given strings cannot be found' do
148
+ expect(TestEnumeration.values_for(%w(VALUE_1 THIS_IS_WRONG)))
149
+ .to eq([TestEnumeration::VALUE_1, nil])
143
150
  end
144
151
  end
145
152
 
146
- describe ".value_for" do
153
+ describe '.value_for' do
147
154
  it "returns the enumeration's value" do
148
- expect(TestEnumeration.value_for("VALUE_1")).to eq(TestEnumeration::VALUE_1)
155
+ expect(TestEnumeration.value_for('VALUE_1')).to eq(TestEnumeration::VALUE_1)
149
156
  end
150
157
 
151
- context "when a constant named after the received value cannot be found" do
152
- it "returns nil" do
153
- expect(TestEnumeration.value_for("THIS_IS_WRONG")).to be_nil
158
+ context 'when a constant named after the received value cannot be found' do
159
+ it 'returns nil' do
160
+ expect(TestEnumeration.value_for('THIS_IS_WRONG')).to be_nil
154
161
  end
155
162
  end
156
163
  end
157
164
 
158
- describe ".value_from_key" do
159
- it "returns the correct value when the key is a string" do
160
- expect(TestEnumeration.value_from_key("value_1")).to eq(TestEnumeration::VALUE_1)
165
+ describe '.value_from_key' do
166
+ it 'returns the correct value when the key is a string' do
167
+ expect(TestEnumeration.value_from_key('value_1')).to eq(TestEnumeration::VALUE_1)
161
168
  end
162
169
 
163
- it "returns the correct value when the key is a symbol" do
170
+ it 'returns the correct value when the key is a symbol' do
164
171
  expect(TestEnumeration.value_from_key(:value_1)).to eq(TestEnumeration::VALUE_1)
165
172
  end
166
173
 
167
- it "returns nil when the key does not exist in the enumeration" do
168
- expect(TestEnumeration.value_from_key("wrong")).to be_nil
174
+ it 'returns nil when the key does not exist in the enumeration' do
175
+ expect(TestEnumeration.value_from_key('wrong')).to be_nil
169
176
  end
170
177
 
171
- it "returns nil when the given value is nil" do
178
+ it 'returns nil when the given value is nil' do
172
179
  expect(TestEnumeration.value_from_key(nil)).to be_nil
173
180
  end
174
181
  end
175
182
 
176
- describe ".keys" do
177
- it "returns a list with the keys used to define the enumeration" do
183
+ describe '.keys' do
184
+ it 'returns a list with the keys used to define the enumeration' do
178
185
  expect(TestEnumeration.keys).to eq([:value_1, :value_2, :value_3])
179
186
  end
180
187
  end
181
188
 
182
- describe ".key_for" do
183
- it "returns the key for the given value inside the enumeration" do
189
+ describe '.key_for' do
190
+ it 'returns the key for the given value inside the enumeration' do
184
191
  expect(TestEnumeration.key_for(TestEnumeration::VALUE_1)).to eq(:value_1)
185
192
  end
186
193
 
187
- it "returns nil if the enumeration does not have the given value" do
188
- expect(TestEnumeration.key_for("foo")).to be_nil
194
+ it 'returns nil if the enumeration does not have the given value' do
195
+ expect(TestEnumeration.key_for('foo')).to be_nil
189
196
  end
190
197
  end
191
198
 
192
199
  context 'associate values with a list' do
193
- it "creates constants for each enumeration value" do
194
- expect(TestEnumerationWithList::FIRST).to eq("first")
195
- expect(TestEnumerationWithList::SECOND).to eq("second")
200
+ it 'creates constants for each enumeration value' do
201
+ expect(TestEnumerationWithList::FIRST).to eq('first')
202
+ expect(TestEnumerationWithList::SECOND).to eq('second')
196
203
  end
197
204
 
198
- it "returns an array with the values and human representations" do
199
- expect(TestEnumerationWithList.to_a).to eq([['First', 'first'], ['Second', 'second']])
205
+ it 'returns an array with the values and human representations' do
206
+ expect(TestEnumerationWithList.to_a).to eq([%w(First first), %w(Second second)])
200
207
  end
201
208
  end
202
209
 
203
- context "specifying a default sort mode" do
210
+ context 'specifying a default sort mode' do
204
211
  subject { create_enumeration_class_with_sort_mode(sort_mode).to_a }
205
212
 
206
- context "by value" do
213
+ context 'by value' do
207
214
  let(:sort_mode) { :value }
208
215
 
209
- it { is_expected.to eq([["jkl", "0"], ["xyz", "1"], ["fgh", "2"], ["abc", "3"]]) }
216
+ it { is_expected.to eq([%w(jkl 0), %w(xyz 1), %w(fgh 2), %w(abc 3)]) }
210
217
  end
211
218
 
212
- context "by name" do
219
+ context 'by name' do
213
220
  let(:sort_mode) { :name }
214
221
 
215
- it { is_expected.to eq([["fgh", "2"], ["xyz", "1"], ["abc", "3"], ["jkl", "0"]]) }
222
+ it { is_expected.to eq([%w(fgh 2), %w(xyz 1), %w(abc 3), %w(jkl 0)]) }
216
223
  end
217
224
 
218
- context "by translation" do
225
+ context 'by translation' do
219
226
  let(:sort_mode) { :translation }
220
227
 
221
- it { is_expected.to eq([["abc", "3"] ,["fgh", "2"], ["jkl", "0"], ["xyz", "1"]]) }
228
+ it { is_expected.to eq([%w(abc 3), %w(fgh 2), %w(jkl 0), %w(xyz 1)]) }
222
229
  end
223
230
 
224
- context "by nothing" do
231
+ context 'by nothing' do
225
232
  let(:sort_mode) { :none }
226
233
 
227
- it { is_expected.to eq([["xyz", "1"], ["fgh", "2"], ["abc", "3"], ["jkl", "0"] ]) }
234
+ it { is_expected.to eq([%w(xyz 1), %w(fgh 2), %w(abc 3), %w(jkl 0)]) }
228
235
  end
229
236
  end
230
237
 
231
- context "when included in ActiveRecord::Base" do
238
+ context 'when included in ActiveRecord::Base' do
232
239
  before do
233
240
  class ActiveRecordStub
234
241
  attr_accessor :bla
235
242
 
236
243
  class << self
237
- def validates_inclusion_of(options); true; end
238
- def validates_presence_of; true; end
244
+ def validates_inclusion_of(_)
245
+ true
246
+ end
247
+
248
+ def validates_presence_of
249
+ true
250
+ end
239
251
  end
240
252
  end
241
253
 
@@ -243,50 +255,52 @@ describe EnumerateIt::Base do
243
255
  ActiveRecordStub.extend EnumerateIt
244
256
  end
245
257
 
246
- it "creates a validation for inclusion" do
247
- expect(ActiveRecordStub).to receive(:validates_inclusion_of).with(:bla, in: TestEnumeration.list, allow_blank: true)
258
+ it 'creates a validation for inclusion' do
259
+ expect(ActiveRecordStub)
260
+ .to receive(:validates_inclusion_of).with(:bla, in: TestEnumeration.list, allow_blank: true)
261
+
248
262
  class ActiveRecordStub
249
263
  has_enumeration_for :bla, with: TestEnumeration
250
264
  end
251
265
  end
252
266
 
253
- context "using the :required option" do
267
+ context 'using the :required option' do
254
268
  before do
255
269
  allow(ActiveRecordStub).to receive(:validates_presence_of).and_return(true)
256
270
  end
257
271
 
258
- it "creates a validation for presence" do
272
+ it 'creates a validation for presence' do
259
273
  expect(ActiveRecordStub).to receive(:validates_presence_of)
260
274
  class ActiveRecordStub
261
275
  has_enumeration_for :bla, with: TestEnumeration, required: true
262
276
  end
263
277
  end
264
278
 
265
- it "passes the given options to the validation method" do
279
+ it 'passes the given options to the validation method' do
266
280
  expect(ActiveRecordStub).to receive(:validates_presence_of).with(:bla, if: :some_method)
267
281
  class ActiveRecordStub
268
282
  has_enumeration_for :bla, with: TestEnumeration, required: { if: :some_method }
269
283
  end
270
284
  end
271
285
 
272
- it "do not require the attribute by default" do
273
- expect(ActiveRecordStub).to_not receive(:validates_presence_of)
286
+ it 'do not require the attribute by default' do
287
+ expect(ActiveRecordStub).not_to receive(:validates_presence_of)
274
288
  class ActiveRecordStub
275
289
  has_enumeration_for :bla, with: TestEnumeration
276
290
  end
277
291
  end
278
292
  end
279
293
 
280
- context "using :skip_validation option" do
294
+ context 'using :skip_validation option' do
281
295
  it "doesn't create a validation for inclusion" do
282
- expect(ActiveRecordStub).to_not receive(:validates_inclusion_of)
296
+ expect(ActiveRecordStub).not_to receive(:validates_inclusion_of)
283
297
  class ActiveRecordStub
284
298
  has_enumeration_for :bla, with: TestEnumeration, skip_validation: true
285
299
  end
286
300
  end
287
301
 
288
302
  it "doesn't create a validation for presence" do
289
- expect(ActiveRecordStub).to_not receive(:validates_presence_of)
303
+ expect(ActiveRecordStub).not_to receive(:validates_presence_of)
290
304
  class ActiveRecordStub
291
305
  has_enumeration_for :bla, with: TestEnumeration, require: true, skip_validation: true
292
306
  end