enumerate_it 0.7.10 → 0.7.11
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.
- data/Gemfile +1 -1
- data/README.rdoc +8 -0
- data/lib/enumerate_it.rb +8 -1
- data/lib/enumerate_it/version.rb +1 -1
- data/spec/enumerate_it_spec.rb +16 -0
- metadata +8 -8
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -70,6 +70,14 @@ This will create some nice stuff:
|
|
70
70
|
|
71
71
|
RelationshipStatus.values_for %w(MARRIED SINGLE) # [2, 1]
|
72
72
|
|
73
|
+
* You can retrieve the value for a specific enumeration constant:
|
74
|
+
|
75
|
+
RelationshipStatus.value_for("MARRIED") # 2
|
76
|
+
|
77
|
+
* You can retrieve the symbol used to declare a specific enumeration value:
|
78
|
+
|
79
|
+
RelationshipStatus.key_for(RelationshioStatus::MARRIED) # :married
|
80
|
+
|
73
81
|
* You can manipulate the hash used to create the enumeration:
|
74
82
|
|
75
83
|
RelationshipStatus.enumeration # returns the exact hash used to define the enumeration
|
data/lib/enumerate_it.rb
CHANGED
@@ -225,6 +225,14 @@ module EnumerateIt
|
|
225
225
|
values.map { |v| self.const_get(v.to_sym) }
|
226
226
|
end
|
227
227
|
|
228
|
+
def self.value_for(value)
|
229
|
+
self.const_get(value.to_sym)
|
230
|
+
end
|
231
|
+
|
232
|
+
def self.key_for(value)
|
233
|
+
enumeration.map {|e| e[0] if e[1][0] == value }.compact.first
|
234
|
+
end
|
235
|
+
|
228
236
|
def self.to_range
|
229
237
|
(list.min..list.max)
|
230
238
|
end
|
@@ -243,7 +251,6 @@ module EnumerateIt
|
|
243
251
|
values_hash[key] = [value, key]
|
244
252
|
end
|
245
253
|
end
|
246
|
-
values_hash
|
247
254
|
end
|
248
255
|
|
249
256
|
def self.register_enumeration(values_hash)
|
data/lib/enumerate_it/version.rb
CHANGED
data/spec/enumerate_it_spec.rb
CHANGED
@@ -251,6 +251,22 @@ describe EnumerateIt::Base do
|
|
251
251
|
end
|
252
252
|
end
|
253
253
|
|
254
|
+
describe "#value_for" do
|
255
|
+
it "returns the enumeration's value" do
|
256
|
+
TestEnumeration.value_for("VALUE_1").should == TestEnumeration::VALUE_1
|
257
|
+
end
|
258
|
+
end
|
259
|
+
|
260
|
+
describe "#key_for" do
|
261
|
+
it "returns the key for the given value inside the enumeration" do
|
262
|
+
TestEnumeration.key_for(TestEnumeration::VALUE_1).should == :value_1
|
263
|
+
end
|
264
|
+
|
265
|
+
it "returns nil if the enumeration does not have the given value" do
|
266
|
+
TestEnumeration.key_for("foo").should be_nil
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
254
270
|
context 'associate values with a list' do
|
255
271
|
it "creates constants for each enumeration value" do
|
256
272
|
TestEnumerationWithList::FIRST.should == "first"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enumerate_it
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-02-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &2172840600 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.3.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2172840600
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &2172840100 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 2.5.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2172840100
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activerecord
|
38
|
-
requirement: &
|
38
|
+
requirement: &2172839640 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: 3.0.5
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2172839640
|
47
47
|
description: Have a legacy database and need some enumerations in your models to match
|
48
48
|
those stupid '4 rows/2 columns' tables with foreign keys and stop doing joins just
|
49
49
|
to fetch a simple description? Or maybe use some integers instead of strings as
|