simple_enum 0.9.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  doc
2
2
  pkg
3
+ *.gemspec
data/README.rdoc CHANGED
@@ -124,6 +124,9 @@ useful when creating queries, displaying option elements or similar:
124
124
  Message.statuses.unread # => 0
125
125
  Message.statuses.unread(true) # => :unread
126
126
 
127
+ # or useful for IN queries
128
+ Messages.statuses(:unread, :read) # => [0, 1]
129
+
127
130
  * As a default an <tt>ArgumentError</tt> is raised if the user tries to set the field to an invalid enumeration value, to change this
128
131
  behaviour use the <tt>:whiny</tt> option:
129
132
 
data/VERSION.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  ---
2
- :major: 0
3
- :minor: 9
4
2
  :patch: 0
3
+ :major: 1
4
+ :build:
5
+ :minor: 0
data/lib/simple_enum.rb CHANGED
@@ -175,9 +175,10 @@ module SimpleEnum
175
175
  self_name.upcase! if options[:upcase]
176
176
  class_variable_set :"@@SE_#{self_name.upcase}", values
177
177
  class_eval(<<-EOM, __FILE__, __LINE__ + 1)
178
- def self.#{self_name}(sym = nil)
179
- return class_variable_get(:@@SE_#{self_name.upcase}) if sym.nil?
180
- class_variable_get(:@@SE_#{self_name.upcase})[sym]
178
+ def self.#{self_name}(*args)
179
+ return @@SE_#{self_name.upcase} if args.first.nil?
180
+ return @@SE_#{self_name.upcase}[args.first] if args.size == 1
181
+ args.inject([]) { |ary, sym| ary << @@SE_#{self_name.upcase}[sym]; ary }
181
182
  end
182
183
 
183
184
  def self.#{self_name}_for_select(&block)
@@ -23,7 +23,7 @@ module SimpleEnum
23
23
  def default(k = nil)
24
24
  @sym_value_lookup[k.to_enum_sym] if k
25
25
  end
26
-
26
+
27
27
  def method_missing(symbol, *args)
28
28
  if @sym_value_lookup.has_key?(symbol.to_enum_sym)
29
29
  return @reverse_sym_lookup[symbol.to_enum_sym] if args.first
@@ -11,6 +11,11 @@ class ClassMethodsTest < ActiveSupport::TestCase
11
11
  assert_nil Dummy.genders(:inexistent)
12
12
  assert_nil Dummy.genders[:inexistent]
13
13
  end
14
+
15
+ test "that Klass.genders(:sym_a, :sym_b) returns an array of values, useful for IN clauses" do
16
+ assert_equal [0, 1], Dummy.genders(:male, :female)
17
+ assert_equal [1, 0], Dummy.genders(:female, :male)
18
+ end
14
19
 
15
20
  test "generation of value shortcuts on class" do
16
21
  g = Dummy.new
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Westermann
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-01 00:00:00 +01:00
12
+ date: 2010-01-07 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -35,7 +35,6 @@ files:
35
35
  - lib/simple_enum/validation.rb
36
36
  - lib/simple_enum/version.rb
37
37
  - locales/en.yml
38
- - simple_enum.gemspec
39
38
  - test/array_conversions_test.rb
40
39
  - test/class_methods_test.rb
41
40
  - test/enum_hash_test.rb
data/simple_enum.gemspec DELETED
@@ -1,75 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{simple_enum}
8
- s.version = "0.9.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Lukas Westermann"]
12
- s.date = %q{2009-12-01}
13
- s.email = %q{lukas.westermann@gmail.com}
14
- s.extra_rdoc_files = [
15
- "README.rdoc"
16
- ]
17
- s.files = [
18
- ".gitignore",
19
- "LICENCE",
20
- "README.rdoc",
21
- "Rakefile",
22
- "VERSION.yml",
23
- "init.rb",
24
- "lib/simple_enum.rb",
25
- "lib/simple_enum/array_support.rb",
26
- "lib/simple_enum/enum_hash.rb",
27
- "lib/simple_enum/object_support.rb",
28
- "lib/simple_enum/validation.rb",
29
- "lib/simple_enum/version.rb",
30
- "locales/en.yml",
31
- "simple_enum.gemspec",
32
- "test/array_conversions_test.rb",
33
- "test/class_methods_test.rb",
34
- "test/enum_hash_test.rb",
35
- "test/finders_test.rb",
36
- "test/models.rb",
37
- "test/object_backed_test.rb",
38
- "test/object_support_test.rb",
39
- "test/prefixes_test.rb",
40
- "test/se_array_support_test.rb",
41
- "test/simple_enum_test.rb",
42
- "test/test_helper.rb",
43
- "test/without_shortcuts_test.rb"
44
- ]
45
- s.homepage = %q{http://github.com/lwe/simple_enum}
46
- s.rdoc_options = ["--charset=UTF-8"]
47
- s.require_paths = ["lib"]
48
- s.rubygems_version = %q{1.3.5}
49
- s.summary = %q{Simple enum-like field support for ActiveRecord (including validations and i18n)}
50
- s.test_files = [
51
- "test/array_conversions_test.rb",
52
- "test/class_methods_test.rb",
53
- "test/enum_hash_test.rb",
54
- "test/finders_test.rb",
55
- "test/models.rb",
56
- "test/object_backed_test.rb",
57
- "test/object_support_test.rb",
58
- "test/prefixes_test.rb",
59
- "test/se_array_support_test.rb",
60
- "test/simple_enum_test.rb",
61
- "test/test_helper.rb",
62
- "test/without_shortcuts_test.rb"
63
- ]
64
-
65
- if s.respond_to? :specification_version then
66
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
67
- s.specification_version = 3
68
-
69
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
70
- else
71
- end
72
- else
73
- end
74
- end
75
-