enumerate_it 0.7.2 → 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -173,6 +173,10 @@ located on enumerations.'enumeration_name'.'key' :
173
173
  p.relationship_status = RelationshipStatus::DIVORCED
174
174
  p.relationship_status_humanize # => 'He's divorced' => uses the provided string
175
175
 
176
+ You can also translate specific values:
177
+
178
+ RelationshipStatis.t(1) # => 'Casado'
179
+
176
180
  == Installation
177
181
 
178
182
  gem install enumerate_it
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.2
1
+ 0.7.3
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.7.2"
8
+ s.version = "0.7.3"
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{2011-01-24}
12
+ s.date = %q{2011-02-03}
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
@@ -185,6 +185,11 @@ module EnumerateIt
185
185
  enumeration.values.map {|value| [translate(value[1]), value[0]] }.sort_by { |value| value[0] }
186
186
  end
187
187
 
188
+ def self.t(value)
189
+ target = to_a.detect { |item| item[1] == value }
190
+ target ? target[0] : value
191
+ end
192
+
188
193
  def self.values_for(values)
189
194
  values.map { |v| self.const_get(v.to_sym) }
190
195
  end
@@ -193,14 +198,14 @@ module EnumerateIt
193
198
  (list.min..list.max)
194
199
  end
195
200
 
201
+ private
196
202
  def self.translate(value)
197
203
  return value unless value.is_a? Symbol
198
204
 
199
- default = value.to_s.to_s.gsub(/_/, ' ').split.map(&:capitalize).join(' ')
205
+ default = value.to_s.gsub(/_/, ' ').split.map(&:capitalize).join(' ')
200
206
  I18n.t("enumerations.#{self.name.underscore}.#{value.to_s.underscore}", :default => default)
201
207
  end
202
208
 
203
- private
204
209
  def self.normalize_enumeration(values_hash)
205
210
  values_hash.each_pair do |key, value|
206
211
  unless value.is_a? Array
@@ -161,6 +161,13 @@ describe EnumerateIt do
161
161
  end
162
162
  end
163
163
 
164
+ describe ".t" do
165
+ it "translates a given value" do
166
+ I18n.locale = :pt
167
+ TestEnumerationWithoutArray.t('1').should == 'Primeiro Valor'
168
+ end
169
+ end
170
+
164
171
  describe "#to_range" do
165
172
  it "returns a Range object containing the enumeration's value interval" do
166
173
  TestEnumeration.to_range.should == ("1".."3")
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: 5
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- - 2
10
- version: 0.7.2
9
+ - 3
10
+ version: 0.7.3
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: 2011-01-24 00:00:00 -02:00
18
+ date: 2011-02-03 00:00:00 -02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency