enumerize 0.8.0 → 2.6.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.
- checksums.yaml +5 -5
- data/.github/workflows/ruby.yml +73 -0
- data/.gitignore +2 -0
- data/.rspec +2 -0
- data/CHANGELOG.md +210 -0
- data/Gemfile +4 -21
- data/Gemfile.global +12 -0
- data/Gemfile.mongo_mapper +6 -0
- data/Gemfile.rails60 +6 -0
- data/Gemfile.rails61 +6 -0
- data/Gemfile.rails70 +9 -0
- data/Gemfile.railsmaster +5 -0
- data/README.md +366 -73
- data/Rakefile +4 -4
- data/enumerize.gemspec +2 -1
- data/lib/enumerize/activemodel.rb +47 -0
- data/lib/enumerize/activerecord.rb +102 -27
- data/lib/enumerize/attribute.rb +59 -15
- data/lib/enumerize/attribute_map.rb +2 -0
- data/lib/enumerize/base.rb +32 -17
- data/lib/enumerize/hooks/formtastic.rb +7 -9
- data/lib/enumerize/hooks/sequel_dataset.rb +17 -0
- data/lib/enumerize/hooks/simple_form.rb +9 -12
- data/lib/enumerize/hooks/uniqueness.rb +7 -8
- data/lib/enumerize/integrations/rails_admin.rb +3 -1
- data/lib/enumerize/integrations/rspec/matcher.rb +112 -26
- data/lib/enumerize/integrations/rspec.rb +3 -0
- data/lib/enumerize/module.rb +2 -0
- data/lib/enumerize/module_attributes.rb +2 -0
- data/lib/enumerize/mongoid.rb +36 -0
- data/lib/enumerize/predicatable.rb +10 -17
- data/lib/enumerize/predicates.rb +5 -1
- data/lib/enumerize/scope/activerecord.rb +53 -0
- data/lib/enumerize/scope/mongoid.rb +50 -0
- data/lib/enumerize/scope/sequel.rb +56 -0
- data/lib/enumerize/sequel.rb +62 -0
- data/lib/enumerize/set.rb +20 -8
- data/lib/enumerize/utils.rb +12 -0
- data/lib/enumerize/value.rb +20 -20
- data/lib/enumerize/version.rb +3 -1
- data/lib/enumerize.rb +33 -2
- data/lib/sequel/plugins/enumerize.rb +18 -0
- data/spec/enumerize/integrations/rspec/matcher_spec.rb +261 -0
- data/spec/spec_helper.rb +30 -0
- data/test/activemodel_test.rb +114 -0
- data/test/activerecord_test.rb +434 -58
- data/test/attribute_map_test.rb +9 -7
- data/test/attribute_test.rb +52 -23
- data/test/base_test.rb +118 -66
- data/test/formtastic_test.rb +28 -12
- data/test/module_attributes_test.rb +10 -8
- data/test/mongo_mapper_test.rb +26 -11
- data/test/mongoid_test.rb +100 -15
- data/test/multiple_test.rb +41 -12
- data/test/predicates_test.rb +34 -26
- data/test/rails_admin_test.rb +8 -6
- data/test/sequel_test.rb +342 -0
- data/test/set_test.rb +42 -26
- data/test/simple_form_test.rb +25 -1
- data/test/support/mock_controller.rb +6 -0
- data/test/support/shared_enums.rb +43 -0
- data/test/support/view_test_helper.rb +18 -1
- data/test/test_helper.rb +33 -2
- data/test/value_test.rb +79 -28
- metadata +51 -12
- data/.travis.yml +0 -19
- data/Gemfile.rails4 +0 -23
- data/lib/enumerize/form_helper.rb +0 -23
- data/test/rspec_matcher_test.rb +0 -76
- data/test/rspec_spec.rb +0 -13
data/test/value_test.rb
CHANGED
@@ -1,23 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'test_helper'
|
4
|
+
require 'yaml'
|
5
|
+
|
6
|
+
class ValueTest < MiniTest::Spec
|
7
|
+
class Model
|
8
|
+
end
|
2
9
|
|
3
|
-
|
4
|
-
|
5
|
-
|
10
|
+
class Attr < Struct.new(:values, :name, :i18n_scopes, :klass)
|
11
|
+
end
|
12
|
+
|
13
|
+
let(:attr) { Attr.new([], "attribute_name", [], Model) }
|
14
|
+
let(:val) { Enumerize::Value.new(attr, 'test_value', 1) }
|
6
15
|
|
7
16
|
it 'is a string' do
|
8
|
-
|
17
|
+
expect(val).must_be_kind_of String
|
9
18
|
end
|
10
19
|
|
11
|
-
|
12
|
-
|
20
|
+
describe 'equality' do
|
21
|
+
it 'is compared to string' do
|
22
|
+
expect(val).must_be :==, 'test_value'
|
23
|
+
expect(val).wont_be :==, 'not_value'
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'is compared to symbol' do
|
27
|
+
expect(val).must_be :==, :test_value
|
28
|
+
expect(val).wont_be :==, :not_value
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'is compared to integer' do
|
32
|
+
expect(val).must_be :==, 1
|
33
|
+
expect(val).wont_be :==, 2
|
34
|
+
end
|
13
35
|
end
|
14
36
|
|
15
37
|
describe 'translation' do
|
16
|
-
let(:attr) { Struct.new(:values, :name, :i18n_scopes).new([], "attribute_name", []) }
|
17
|
-
|
18
38
|
it 'uses common translation' do
|
19
39
|
store_translations(:en, :enumerize => {:attribute_name => {:test_value => "Common translation"}}) do
|
20
|
-
|
40
|
+
expect(val.text).must_be :==, "Common translation"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'uses default translation from the "default" section if its present' do
|
45
|
+
store_translations(:en, :enumerize => {:defaults => {:attribute_name => {:test_value => "Common translation"}}}) do
|
46
|
+
expect(val.text).must_be :==, "Common translation"
|
21
47
|
end
|
22
48
|
end
|
23
49
|
|
@@ -25,7 +51,7 @@ describe Enumerize::Value do
|
|
25
51
|
attr.i18n_scopes = ["enumerize.model_name.attribute_name"]
|
26
52
|
|
27
53
|
store_translations(:en, :enumerize => {:model_name => {:attribute_name => {:test_value => "Model Specific translation"}}}) do
|
28
|
-
|
54
|
+
expect(val.text).must_be :==, "Model Specific translation"
|
29
55
|
end
|
30
56
|
end
|
31
57
|
|
@@ -33,13 +59,13 @@ describe Enumerize::Value do
|
|
33
59
|
attr.i18n_scopes = ["enumerize.model_name.attribute_name"]
|
34
60
|
|
35
61
|
store_translations(:en, :enumerize => {:attribute_name => {:test_value => "Common translation"}, :model_name => {:attribute_name => {:test_value => "Model Specific translation"}}}) do
|
36
|
-
|
62
|
+
expect(val.text).must_be :==, "Model Specific translation"
|
37
63
|
end
|
38
64
|
end
|
39
65
|
|
40
66
|
it 'uses simply humanized value when translation is undefined' do
|
41
67
|
store_translations(:en, :enumerize => {}) do
|
42
|
-
|
68
|
+
expect(val.text).must_be :==, "Test value"
|
43
69
|
end
|
44
70
|
end
|
45
71
|
|
@@ -47,7 +73,7 @@ describe Enumerize::Value do
|
|
47
73
|
attr.i18n_scopes = ["other.scope"]
|
48
74
|
|
49
75
|
store_translations(:en, :other => {:scope => {:test_value => "Scope specific translation"}}) do
|
50
|
-
|
76
|
+
expect(val.text).must_be :==, "Scope specific translation"
|
51
77
|
end
|
52
78
|
end
|
53
79
|
|
@@ -55,53 +81,78 @@ describe Enumerize::Value do
|
|
55
81
|
attr.i18n_scopes = ["nonexistent.scope", "other.scope"]
|
56
82
|
|
57
83
|
store_translations(:en, :other => {:scope => {:test_value => "Scope specific translation"}}) do
|
58
|
-
|
84
|
+
expect(val.text).must_be :==, "Scope specific translation"
|
59
85
|
end
|
60
86
|
end
|
61
87
|
end
|
62
88
|
|
63
89
|
describe 'boolean methods comparison' do
|
64
90
|
before do
|
65
|
-
attr.values = [
|
91
|
+
attr.values = [val, Enumerize::Value.new(attr, 'other_value')]
|
66
92
|
end
|
67
93
|
|
68
94
|
it 'returns true if value equals method' do
|
69
|
-
|
95
|
+
expect(val.test_value?).must_equal true
|
70
96
|
end
|
71
97
|
|
72
98
|
it 'returns false if value does not equal method' do
|
73
|
-
|
99
|
+
expect(val.other_value?).must_equal false
|
74
100
|
end
|
75
101
|
|
76
102
|
it 'raises NoMethodError if there are no values like boolean method' do
|
77
|
-
proc {
|
78
|
-
|
79
|
-
}.must_raise NoMethodError
|
103
|
+
expect(proc {
|
104
|
+
val.some_method?
|
105
|
+
}).must_raise NoMethodError
|
80
106
|
end
|
81
107
|
|
82
108
|
it 'raises ArgumentError if arguments are passed' do
|
83
|
-
proc {
|
84
|
-
|
85
|
-
}.must_raise ArgumentError
|
109
|
+
expect(proc {
|
110
|
+
val.other_value?('<3')
|
111
|
+
}).must_raise ArgumentError
|
86
112
|
end
|
87
113
|
|
88
114
|
it 'responds to methods for existing values' do
|
89
|
-
|
90
|
-
|
115
|
+
expect(val).must_respond_to :test_value?
|
116
|
+
expect(val).must_respond_to :other_value?
|
91
117
|
end
|
92
118
|
|
93
119
|
it 'returns a method object' do
|
94
|
-
|
120
|
+
expect(val.method(:test_value?)).must_be_instance_of Method
|
95
121
|
end
|
96
122
|
|
97
123
|
it "doesn't respond to a method for not existing value" do
|
98
|
-
|
124
|
+
expect(val).wont_respond_to :some_method?
|
125
|
+
end
|
126
|
+
|
127
|
+
it "doesn't respond to methods is value was modified" do
|
128
|
+
modified_value = val.upcase
|
129
|
+
|
130
|
+
expect(modified_value.upcase).wont_respond_to :some_method?
|
131
|
+
expect(modified_value.upcase).wont_respond_to :test_value?
|
132
|
+
expect(modified_value.upcase).wont_respond_to :other_value?
|
99
133
|
end
|
100
134
|
end
|
101
135
|
|
102
136
|
describe 'serialization' do
|
137
|
+
let(:val) { Enumerize::Value.new(attr, 'test_value') }
|
138
|
+
|
103
139
|
it 'should be serialized to yaml as string value' do
|
104
|
-
assert_equal YAML.dump('test_value'), YAML.dump(
|
140
|
+
assert_equal YAML.dump('test_value'), YAML.dump(val)
|
141
|
+
end
|
142
|
+
|
143
|
+
it 'serializes with Marshal' do
|
144
|
+
dump_value = Marshal.dump(val)
|
145
|
+
expect(Marshal.load(dump_value)).must_equal 'test_value'
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
describe 'initialize' do
|
150
|
+
it 'no output if undefined boolean method' do
|
151
|
+
assert_silent() { Enumerize::Value.new(attr, 'test_value') }
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'error output if defined boolean method' do
|
155
|
+
assert_output(nil, /`empty\?` is defined/) { Enumerize::Value.new(attr, 'empty') }
|
105
156
|
end
|
106
157
|
end
|
107
158
|
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:
|
4
|
+
version: 2.6.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:
|
11
|
+
date: 2023-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -31,22 +31,29 @@ executables: []
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
|
+
- ".github/workflows/ruby.yml"
|
34
35
|
- ".gitignore"
|
35
|
-
- ".
|
36
|
+
- ".rspec"
|
36
37
|
- CHANGELOG.md
|
37
38
|
- Gemfile
|
38
|
-
- Gemfile.
|
39
|
+
- Gemfile.global
|
40
|
+
- Gemfile.mongo_mapper
|
41
|
+
- Gemfile.rails60
|
42
|
+
- Gemfile.rails61
|
43
|
+
- Gemfile.rails70
|
44
|
+
- Gemfile.railsmaster
|
39
45
|
- MIT-LICENSE
|
40
46
|
- README.md
|
41
47
|
- Rakefile
|
42
48
|
- enumerize.gemspec
|
43
49
|
- lib/enumerize.rb
|
50
|
+
- lib/enumerize/activemodel.rb
|
44
51
|
- lib/enumerize/activerecord.rb
|
45
52
|
- lib/enumerize/attribute.rb
|
46
53
|
- lib/enumerize/attribute_map.rb
|
47
54
|
- lib/enumerize/base.rb
|
48
|
-
- lib/enumerize/form_helper.rb
|
49
55
|
- lib/enumerize/hooks/formtastic.rb
|
56
|
+
- lib/enumerize/hooks/sequel_dataset.rb
|
50
57
|
- lib/enumerize/hooks/simple_form.rb
|
51
58
|
- lib/enumerize/hooks/uniqueness.rb
|
52
59
|
- lib/enumerize/integrations/rails_admin.rb
|
@@ -54,11 +61,21 @@ files:
|
|
54
61
|
- lib/enumerize/integrations/rspec/matcher.rb
|
55
62
|
- lib/enumerize/module.rb
|
56
63
|
- lib/enumerize/module_attributes.rb
|
64
|
+
- lib/enumerize/mongoid.rb
|
57
65
|
- lib/enumerize/predicatable.rb
|
58
66
|
- lib/enumerize/predicates.rb
|
67
|
+
- lib/enumerize/scope/activerecord.rb
|
68
|
+
- lib/enumerize/scope/mongoid.rb
|
69
|
+
- lib/enumerize/scope/sequel.rb
|
70
|
+
- lib/enumerize/sequel.rb
|
59
71
|
- lib/enumerize/set.rb
|
72
|
+
- lib/enumerize/utils.rb
|
60
73
|
- lib/enumerize/value.rb
|
61
74
|
- lib/enumerize/version.rb
|
75
|
+
- lib/sequel/plugins/enumerize.rb
|
76
|
+
- spec/enumerize/integrations/rspec/matcher_spec.rb
|
77
|
+
- spec/spec_helper.rb
|
78
|
+
- test/activemodel_test.rb
|
62
79
|
- test/activerecord_test.rb
|
63
80
|
- test/attribute_map_test.rb
|
64
81
|
- test/attribute_test.rb
|
@@ -70,16 +87,17 @@ files:
|
|
70
87
|
- test/multiple_test.rb
|
71
88
|
- test/predicates_test.rb
|
72
89
|
- test/rails_admin_test.rb
|
73
|
-
- test/
|
74
|
-
- test/rspec_spec.rb
|
90
|
+
- test/sequel_test.rb
|
75
91
|
- test/set_test.rb
|
76
92
|
- test/simple_form_test.rb
|
77
93
|
- test/support/mock_controller.rb
|
94
|
+
- test/support/shared_enums.rb
|
78
95
|
- test/support/view_test_helper.rb
|
79
96
|
- test/test_helper.rb
|
80
97
|
- test/value_test.rb
|
81
98
|
homepage: https://github.com/brainspec/enumerize
|
82
|
-
licenses:
|
99
|
+
licenses:
|
100
|
+
- MIT
|
83
101
|
metadata: {}
|
84
102
|
post_install_message:
|
85
103
|
rdoc_options: []
|
@@ -89,16 +107,37 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
89
107
|
requirements:
|
90
108
|
- - ">="
|
91
109
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
110
|
+
version: '2.7'
|
93
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
112
|
requirements:
|
95
113
|
- - ">="
|
96
114
|
- !ruby/object:Gem::Version
|
97
115
|
version: '0'
|
98
116
|
requirements: []
|
99
|
-
|
100
|
-
rubygems_version: 2.2.0
|
117
|
+
rubygems_version: 3.1.6
|
101
118
|
signing_key:
|
102
119
|
specification_version: 4
|
103
120
|
summary: Enumerated attributes with I18n and ActiveRecord/Mongoid/MongoMapper support
|
104
|
-
test_files:
|
121
|
+
test_files:
|
122
|
+
- spec/enumerize/integrations/rspec/matcher_spec.rb
|
123
|
+
- spec/spec_helper.rb
|
124
|
+
- test/activemodel_test.rb
|
125
|
+
- test/activerecord_test.rb
|
126
|
+
- test/attribute_map_test.rb
|
127
|
+
- test/attribute_test.rb
|
128
|
+
- test/base_test.rb
|
129
|
+
- test/formtastic_test.rb
|
130
|
+
- test/module_attributes_test.rb
|
131
|
+
- test/mongo_mapper_test.rb
|
132
|
+
- test/mongoid_test.rb
|
133
|
+
- test/multiple_test.rb
|
134
|
+
- test/predicates_test.rb
|
135
|
+
- test/rails_admin_test.rb
|
136
|
+
- test/sequel_test.rb
|
137
|
+
- test/set_test.rb
|
138
|
+
- test/simple_form_test.rb
|
139
|
+
- test/support/mock_controller.rb
|
140
|
+
- test/support/shared_enums.rb
|
141
|
+
- test/support/view_test_helper.rb
|
142
|
+
- test/test_helper.rb
|
143
|
+
- test/value_test.rb
|
data/.travis.yml
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
services:
|
3
|
-
- mongodb
|
4
|
-
before_install:
|
5
|
-
- gem install bundler
|
6
|
-
gemfile:
|
7
|
-
- Gemfile
|
8
|
-
- Gemfile.rails4
|
9
|
-
rvm:
|
10
|
-
- 1.9.3
|
11
|
-
- 2.0.0
|
12
|
-
- 2.1.0
|
13
|
-
- jruby-19mode
|
14
|
-
notifications:
|
15
|
-
email:
|
16
|
-
recipients:
|
17
|
-
- lest@brainspec.com
|
18
|
-
- nashby@brainspec.com
|
19
|
-
- dreamfall@brainspec.com
|
data/Gemfile.rails4
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
gemspec
|
4
|
-
|
5
|
-
gem 'rake'
|
6
|
-
gem 'minitest', '~> 4.1'
|
7
|
-
gem 'rspec', :require => false
|
8
|
-
|
9
|
-
gem 'rails', '4.0.1', :require => false
|
10
|
-
gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
|
11
|
-
gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
|
12
|
-
|
13
|
-
platforms :rbx do
|
14
|
-
gem 'rubysl', '~> 2.0'
|
15
|
-
gem 'psych'
|
16
|
-
gem 'rubinius-developer_tools'
|
17
|
-
gem 'rubysl-test-unit'
|
18
|
-
end
|
19
|
-
|
20
|
-
gem 'mongoid', github: 'mongoid/mongoid', ref: 'f91feef0a0c6b83a1b878e154f1014536aa1c298'
|
21
|
-
gem 'mongo_mapper', github: 'jnunemaker/mongomapper'
|
22
|
-
gem 'simple_form'
|
23
|
-
gem 'formtastic', github: 'justinfrench/formtastic'
|
@@ -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
|
data/test/rspec_matcher_test.rb
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require 'enumerize/integrations/rspec'
|
3
|
-
|
4
|
-
describe Enumerize::Integrations::RSpec do
|
5
|
-
class Should
|
6
|
-
include Enumerize::Integrations::RSpec
|
7
|
-
end
|
8
|
-
|
9
|
-
let(:klass) do
|
10
|
-
Class.new do
|
11
|
-
extend Enumerize
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
let(:should) { Should.new }
|
16
|
-
let(:object) { klass.new }
|
17
|
-
|
18
|
-
describe '#description' do
|
19
|
-
before do
|
20
|
-
klass.enumerize(:sex, :in => [:male, :female])
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'returns description without default value' do
|
24
|
-
matcher = should.enumerize(:sex).in(:male, :female)
|
25
|
-
matcher.description.must_equal 'enumerize :sex in: "female", "male"'
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'returns description with default value' do
|
29
|
-
matcher = should.enumerize(:sex).in(:male, :female).with_default(:male)
|
30
|
-
matcher.description.must_equal 'enumerize :sex in: "female", "male" with "male" as default value'
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
describe '#matches?' do
|
35
|
-
before do
|
36
|
-
klass.enumerize(:sex, :in => [:male, :female])
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'returns true' do
|
40
|
-
matcher = should.enumerize(:sex).in(:male, :female)
|
41
|
-
matcher.matches?(object).must_equal true
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'returns false' do
|
45
|
-
matcher = should.enumerize(:sex).in(:bar)
|
46
|
-
matcher.matches?(object).must_equal false
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe '#failure_message' do
|
51
|
-
before do
|
52
|
-
klass.enumerize(:sex, :in => [:male, :female], :default => :male)
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'returns failure message for invalid :in option' do
|
56
|
-
matcher = should.enumerize(:sex).in(:bar)
|
57
|
-
matcher.subject = object
|
58
|
-
expected = ' expected :sex to allow value: "bar", but it allows "female", "male" instead'
|
59
|
-
matcher.failure_message.must_equal expected
|
60
|
-
end
|
61
|
-
|
62
|
-
it 'returns failure message for invalid :with_default option' do
|
63
|
-
matcher = should.enumerize(:sex).in(:male, :female).with_default(:foo)
|
64
|
-
matcher.subject = object
|
65
|
-
expected = ' expected :sex to have "foo" as default value, but it sets "male" instead'
|
66
|
-
matcher.failure_message.must_equal expected
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'returns failure message for ivalid :in option with default value' do
|
70
|
-
matcher = should.enumerize(:sex).in(:bar).with_default(:male)
|
71
|
-
matcher.subject = object
|
72
|
-
expected = ' expected :sex to allow value: "bar", but it allows "female", "male" instead'
|
73
|
-
matcher.failure_message.must_equal expected
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
data/test/rspec_spec.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'enumerize'
|
2
|
-
require 'rspec'
|
3
|
-
|
4
|
-
class RSpecUser
|
5
|
-
extend Enumerize
|
6
|
-
|
7
|
-
enumerize :sex, in: [:male, :female], default: :male
|
8
|
-
end
|
9
|
-
|
10
|
-
describe RSpecUser do
|
11
|
-
it { should enumerize(:sex).in(:male, :female) }
|
12
|
-
it { should enumerize(:sex).in(:male, :female).with_default(:male) }
|
13
|
-
end
|