enumerate_it 0.6.0 → 0.7.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.
data/README.rdoc CHANGED
@@ -66,6 +66,10 @@ This will create some nice stuff:
66
66
 
67
67
  RelationshipStatus.to_a # [["Divorced", 4],["Married", 2],["Single", 1],["Widow", 3]]
68
68
 
69
+ * You can retrive a list with values for a group of enumeration constants.
70
+
71
+ RelationshipStatus.valus_for %w(MARRIED SINGLE) # [2, 1]
72
+
69
73
  * You can manipulate the hash used to create the enumeration:
70
74
 
71
75
  RelationshipStatus.enumeration # returns the exact hash used to define the enumeration
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.0
1
+ 0.7.0
data/enumerate_it.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{enumerate_it}
8
- s.version = "0.6.0"
8
+ s.version = "0.7.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["C\303\241ssio Marques"]
12
- s.date = %q{2010-10-20}
12
+ s.date = %q{2010-11-08}
13
13
  s.description = %q{Have a legacy database and need some enumerations in your models to match those stupid '4 rows/2 columns' tables with foreign keys and stop doing joins just to fetch a simple description? Or maybe use some integers instead of strings as the code for each value of your enumerations? Here's EnumerateIt.}
14
14
  s.email = %q{cassiommc@gmail.com}
15
15
  s.extra_rdoc_files = [
data/lib/enumerate_it.rb CHANGED
@@ -66,6 +66,10 @@
66
66
  #
67
67
  # RelationshipStatus.to_a # [["Divorced", 4],["Married", 2],["Single", 1],["Widow", 3]]
68
68
  #
69
+ # You can retrive a list with values for a group of enumeration constants
70
+ #
71
+ # RelationshipStatus.valus_for %w(MARRIED SINGLE) # [2, 1]
72
+ #
69
73
  # - You can manipulate the has used to create the enumeration:
70
74
  #
71
75
  # RelationshipStatus.enumeration # returns the exact hash used to define the enumeration
@@ -200,6 +204,10 @@ module EnumerateIt
200
204
  def self.to_a
201
205
  @@registered_enumerations[self].values.map {|value| [translate(value[1]), value[0]] }.sort_by { |value| value[0] }
202
206
  end
207
+
208
+ def self.values_for(values)
209
+ values.map { |v| self.const_get(v.to_sym) }
210
+ end
203
211
 
204
212
  def self.translate(value)
205
213
  return value unless value.is_a? Symbol
@@ -135,6 +135,12 @@ describe EnumerateIt do
135
135
  end
136
136
  end
137
137
 
138
+ describe ".values_for" do
139
+ it "returns an array with the corresponding values for a string array representing some of the enumeration's values" do
140
+ TestEnumeration.values_for(%w(VALUE_1 VALUE_2)).should == [TestEnumeration::VALUE_1, TestEnumeration::VALUE_2]
141
+ end
142
+ end
143
+
138
144
  context "when included in ActiveRecord::Base" do
139
145
  before :each do
140
146
  class ActiveRecordStub
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumerate_it
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
4
+ hash: 3
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 6
8
+ - 7
9
9
  - 0
10
- version: 0.6.0
10
+ version: 0.7.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - "C\xC3\xA1ssio Marques"
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-20 00:00:00 -02:00
18
+ date: 2010-11-08 00:00:00 -02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency