simple_enum 1.3.1 → 1.3.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  source :rubygems
2
2
 
3
- gem "activesupport", "~> 3.0.0", :require => "active_support"
4
- gem "activerecord", "~> 3.0.0", :require => "active_record"
3
+ gem "activesupport", "~> 3.0", :require => "active_support"
4
+ gem "activerecord", "~> 3.0", :require => "active_record"
5
5
 
6
6
  gem "sqlite3-ruby", :require => "sqlite3", :platforms => :ruby
7
7
  gem "jdbc-sqlite3", :require => "jdbcsqlite3", :platforms => :jruby
data/Gemfile.lock CHANGED
@@ -1,28 +1,29 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (3.0.1)
5
- activesupport (= 3.0.1)
4
+ activemodel (3.0.5)
5
+ activesupport (= 3.0.5)
6
6
  builder (~> 2.1.2)
7
- i18n (~> 0.4.1)
8
- activerecord (3.0.1)
9
- activemodel (= 3.0.1)
10
- activesupport (= 3.0.1)
11
- arel (~> 1.0.0)
7
+ i18n (~> 0.4)
8
+ activerecord (3.0.5)
9
+ activemodel (= 3.0.5)
10
+ activesupport (= 3.0.5)
11
+ arel (~> 2.0.2)
12
12
  tzinfo (~> 0.3.23)
13
- activesupport (3.0.1)
14
- arel (1.0.1)
15
- activesupport (~> 3.0.0)
13
+ activesupport (3.0.5)
14
+ arel (2.0.9)
16
15
  builder (2.1.2)
17
- i18n (0.4.2)
18
- sqlite3-ruby (1.3.2)
19
- tzinfo (0.3.23)
16
+ i18n (0.5.0)
17
+ sqlite3 (1.3.3)
18
+ sqlite3-ruby (1.3.3)
19
+ sqlite3 (>= 1.3.3)
20
+ tzinfo (0.3.24)
20
21
 
21
22
  PLATFORMS
22
23
  ruby
23
24
 
24
25
  DEPENDENCIES
25
- activerecord (~> 3.0.0)
26
- activesupport (~> 3.0.0)
26
+ activerecord (~> 3.0)
27
+ activesupport (~> 3.0)
27
28
  jdbc-sqlite3
28
29
  sqlite3-ruby
data/README.rdoc CHANGED
@@ -133,7 +133,15 @@ useful when creating queries, displaying option elements or similar:
133
133
  class User < ActiveRecord::Base
134
134
  as_enum :gender, [:male, :female], :whiny => false
135
135
  end
136
-
136
+
137
+ * Need translated keys et al in your forms? SimpleEnum provides a <tt><enum>_for_select</tt> method:
138
+
139
+ # on the gender field
140
+ <%= select("user", "gender", User.genders_for_select) %>
141
+
142
+ # or on the '_cd' field
143
+ <%= select("user", "gender_cd", User.genders_for_select(:value))
144
+
137
145
  * To define any option globally, like setting <tt>:whiny</tt> to +false+, or globally enable <tt>:prefix</tt>; all default options
138
146
  are stored in <tt>SimpleEnum.default_options</tt>, this hash can be easily changed in your initializers or wherever:
139
147
 
@@ -187,6 +195,7 @@ or <em>b)</em> a custom method to convert an object to a symbolized form named +
187
195
  * dmitry - bugfixes and other improvements
188
196
  * tarsolya - implemented all the ruby 1.9 and rails 3 goodness!
189
197
  * dbalatero - rails 2.3.5 bugfix
198
+ * johnthethird - feature for <tt>_for_select</tt> to return the values
190
199
 
191
200
  == Licence & Copyright
192
201
  Copyright (c) 2009 by Lukas Westermann, Licenced under MIT Licence (see LICENCE file)
data/lib/simple_enum.rb CHANGED
@@ -21,7 +21,7 @@ require 'simple_enum/validation'
21
21
  module SimpleEnum
22
22
 
23
23
  # +SimpleEnum+ version string.
24
- VERSION = "1.3.1".freeze
24
+ VERSION = "1.3.2".freeze
25
25
 
26
26
  class << self
27
27
 
@@ -189,10 +189,10 @@ module SimpleEnum
189
189
  args.inject([]) { |ary, sym| ary << read_inheritable_attribute(#{enum_attr.inspect})[sym]; ary }
190
190
  end
191
191
 
192
- def self.#{attr_name}_for_select(&block)
192
+ def self.#{attr_name}_for_select(attr = :key, &block)
193
193
  self.#{attr_name}.map do |k,v|
194
- [block_given? ? yield(k,v) : self.human_enum_name(#{attr_name.inspect}, k), k]
195
- end.sort
194
+ [block_given? ? yield(k,v) : self.human_enum_name(#{attr_name.inspect}, k), attr == :value ? v : k]
195
+ end
196
196
  end
197
197
  RUBY
198
198
 
@@ -109,7 +109,15 @@ class ClassMethodsTest < ActiveSupport::TestCase
109
109
 
110
110
  test "enum_for_select class method" do
111
111
  for_select = Dummy.genders_for_select
112
- assert_equal ["Girl", :female], for_select.first
113
- assert_equal ["Male", :male], for_select.last
112
+ genders = Dummy.genders
113
+ assert_equal genders.first.first, for_select.first.second
114
+ assert_equal ["Male", :male], for_select.first
115
+ assert_equal ["Girl", :female], for_select.last
116
+ end
117
+
118
+ test "enum_for_select(:value) class method" do
119
+ for_select = Dummy.genders_for_select(:value)
120
+ assert_equal ["Male", 0], for_select.first
121
+ assert_equal ["Girl", 1], for_select.last
114
122
  end
115
123
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_enum
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease: false
4
+ hash: 31
5
+ prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 1
10
- version: 1.3.1
9
+ - 2
10
+ version: 1.3.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Lukas Westermann
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-10 00:00:00 +01:00
18
+ date: 2011-03-08 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -83,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  requirements: []
84
84
 
85
85
  rubyforge_project:
86
- rubygems_version: 1.3.7
86
+ rubygems_version: 1.4.1
87
87
  signing_key:
88
88
  specification_version: 3
89
89
  summary: Simple enum-like field support for ActiveRecord (including validations and i18n)