has_enum 0.8.2 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/has_enum/class_methods.rb +12 -0
- data/lib/has_enum/version.rb +1 -1
- data/spec/has_enum_spec.rb +9 -0
- data/spec/ru.yml +1 -0
- data/spec/spec_helper.rb +6 -0
- data/spec/test_model.rb +3 -0
- metadata +4 -4
@@ -17,6 +17,18 @@ module HasEnum::ClassMethods
|
|
17
17
|
has_enum?(enum) && serialized_attributes[enum.to_s] == Array
|
18
18
|
end
|
19
19
|
|
20
|
+
def has_enums
|
21
|
+
columns_hash.each do | column_name, column |
|
22
|
+
if human_attribute_name("#{column_name}_enum", :count => nil).is_a? Hash
|
23
|
+
if column.type == :text
|
24
|
+
has_enum column_name, :multiple => true
|
25
|
+
else
|
26
|
+
has_enum column_name
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
20
32
|
def has_enum(*params)
|
21
33
|
options = params.extract_options!
|
22
34
|
options.assert_valid_keys(:query_methods, :scopes, :presence, :multiple)
|
data/lib/has_enum/version.rb
CHANGED
data/spec/has_enum_spec.rb
CHANGED
@@ -77,6 +77,15 @@ describe HasEnum do
|
|
77
77
|
TestModel.human_enums[:status][:done].should eql "Завершено"
|
78
78
|
end
|
79
79
|
|
80
|
+
it "should autodetect all enums if has_enums called" do
|
81
|
+
AnotherModel.should be_has_multiple_enum(:speed)
|
82
|
+
|
83
|
+
AnotherModel.should_not be_has_multiple_enum(:size)
|
84
|
+
AnotherModel.should be_has_enum(:size)
|
85
|
+
|
86
|
+
AnotherModel.should_not be_has_enum(:status)
|
87
|
+
end
|
88
|
+
|
80
89
|
describe "category enum" do
|
81
90
|
it "should accept string enum values" do
|
82
91
|
%w(stuff things misc).each do |value|
|
data/spec/ru.yml
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -19,6 +19,12 @@ ActiveRecord::Schema.define(:version => 0) do
|
|
19
19
|
t.string "speed"
|
20
20
|
end
|
21
21
|
|
22
|
+
create_table "another_models", :force => true do | t |
|
23
|
+
t.string "status"
|
24
|
+
t.string "size"
|
25
|
+
t.text "speed"
|
26
|
+
end
|
27
|
+
|
22
28
|
create_table "schema_info", :id => false, :force => true do |t|
|
23
29
|
t.integer "version"
|
24
30
|
end
|
data/spec/test_model.rb
CHANGED
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 9
|
8
|
+
- 0
|
9
|
+
version: 0.9.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Andreas Korth
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-04-
|
19
|
+
date: 2011-04-19 00:00:00 +07:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|