abstractivator 0.0.25 → 0.0.26
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/abstractivator/enum.rb +5 -1
- data/lib/abstractivator/version.rb +1 -1
- data/spec/lib/abstractivator/enum_spec.rb +5 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b795929700f827b1bbf14721ec221fed52500ad7
|
4
|
+
data.tar.gz: 4beb6284a5f126719dcd171eb62a07bae1f99b6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15de6b1a3fd955f91fa2f0025564fff670843dfcb702d96042dddaff393ca2003bb2469ccc36aee048d3d6b89ceb872093d27cda74e65b184ced4b30c54f2dc5
|
7
|
+
data.tar.gz: d3f99798f2341a12ac4d4ef73a6f01ca78a76cdae334548b405df343c1ce9bc06f5ede1df08ca15c7d3c158dc630fee9b24db7ca282a5038b31b38b10dcb4397
|
data/lib/abstractivator/enum.rb
CHANGED
@@ -55,7 +55,11 @@ class WrappedEnumValue < SimpleDelegator
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def define_enum(name, *fields)
|
58
|
-
|
58
|
+
if respond_to?(:const_set)
|
59
|
+
const_set(name, make_enum(*fields))
|
60
|
+
else # top-level
|
61
|
+
Kernel.send(:const_set, name, make_enum(*fields))
|
62
|
+
end
|
59
63
|
end
|
60
64
|
|
61
65
|
def make_enum(*fields)
|
@@ -12,6 +12,8 @@ class Container
|
|
12
12
|
define_enum(:Vegetables, cucumber: 'Cucumis sativus', eggplant: 8)
|
13
13
|
end
|
14
14
|
|
15
|
+
define_enum(:Meats, :bacon, :more_bacon)
|
16
|
+
|
15
17
|
describe Enum do
|
16
18
|
describe '::values' do
|
17
19
|
it 'enumerates the values' do
|
@@ -59,6 +61,9 @@ describe '#define_enum' do
|
|
59
61
|
expect(Container::Vegetables::CUCUMBER.enum_type).to eql Container::Vegetables
|
60
62
|
expect(Container::Vegetables::EGGPLANT.enum_type).to eql Container::Vegetables
|
61
63
|
end
|
64
|
+
it 'can define top level enumerations' do
|
65
|
+
expect(Meats.values).to eql %w(bacon more_bacon)
|
66
|
+
end
|
62
67
|
it 'raises an error when called with bad arguments' do
|
63
68
|
expect{define_enum(:Stuff, 5)}.to raise_error /Arguments must be/
|
64
69
|
expect{define_enum(:Stuff, '!@$' => '')}.to raise_error /Arguments must be/
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abstractivator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.26
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Winton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|