enumerate_it 0.7.14 → 0.7.15
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.lock +2 -2
- data/lib/enumerate_it.rb +7 -4
- data/lib/enumerate_it/version.rb +1 -1
- data/spec/enumerate_it_spec.rb +14 -0
- metadata +32 -12
data/Gemfile.lock
CHANGED
data/lib/enumerate_it.rb
CHANGED
@@ -201,6 +201,8 @@
|
|
201
201
|
# - You can add behaviour to the enumeration class.
|
202
202
|
# - You can reuse the enumeration inside other classes.
|
203
203
|
#
|
204
|
+
|
205
|
+
require "active_support/core_ext/class/attribute"
|
204
206
|
module EnumerateIt
|
205
207
|
class Base
|
206
208
|
@@registered_enumerations = {}
|
@@ -276,6 +278,8 @@ module EnumerateIt
|
|
276
278
|
|
277
279
|
module ClassMethods
|
278
280
|
def has_enumeration_for(attribute, options = {})
|
281
|
+
self.enumerations = self.enumerations.dup
|
282
|
+
|
279
283
|
define_enumeration_class attribute, options
|
280
284
|
set_validations attribute, options
|
281
285
|
create_enumeration_humanize_method options[:with], attribute
|
@@ -290,10 +294,6 @@ module EnumerateIt
|
|
290
294
|
end
|
291
295
|
end
|
292
296
|
|
293
|
-
def enumerations
|
294
|
-
@_enumerations ||= {}
|
295
|
-
end
|
296
|
-
|
297
297
|
private
|
298
298
|
|
299
299
|
def store_enumeration(klass, attribute)
|
@@ -355,6 +355,9 @@ module EnumerateIt
|
|
355
355
|
end
|
356
356
|
|
357
357
|
def self.included(receiver)
|
358
|
+
receiver.class_attribute :enumerations, :instance_writer => false, :instance_reader => false
|
359
|
+
receiver.enumerations = {}
|
360
|
+
|
358
361
|
receiver.extend ClassMethods
|
359
362
|
end
|
360
363
|
end
|
data/lib/enumerate_it/version.rb
CHANGED
data/spec/enumerate_it_spec.rb
CHANGED
@@ -73,6 +73,20 @@ describe EnumerateIt do
|
|
73
73
|
TestClass.enumerations[:foobar].should == TestEnumeration
|
74
74
|
end
|
75
75
|
|
76
|
+
context 'use the same enumeration from an inherited class' do
|
77
|
+
before do
|
78
|
+
class SomeClass < BaseClass
|
79
|
+
end
|
80
|
+
@target = SomeClass.new
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'should have use the correct class' do
|
84
|
+
@base = BaseClass.new
|
85
|
+
@base.class.enumerations[:foobar].should == TestEnumeration
|
86
|
+
@target.class.enumerations[:foobar].should == TestEnumeration
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
76
90
|
context 'declaring a simple enum on an inherited class' do
|
77
91
|
before do
|
78
92
|
class SomeClass < BaseClass
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enumerate_it
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.15
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,27 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-06-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.0.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rake
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rspec
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 2.5.0
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.5.0
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: activerecord
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,7 +69,12 @@ dependencies:
|
|
54
69
|
version: 3.0.5
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 3.0.5
|
58
78
|
description: Have a legacy database and need some enumerations in your models to match
|
59
79
|
those stupid '4 rows/2 columns' tables with foreign keys and stop doing joins just
|
60
80
|
to fetch a simple description? Or maybe use some integers instead of strings as
|
@@ -105,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
125
|
version: '0'
|
106
126
|
requirements: []
|
107
127
|
rubyforge_project:
|
108
|
-
rubygems_version: 1.8.
|
128
|
+
rubygems_version: 1.8.24
|
109
129
|
signing_key:
|
110
130
|
specification_version: 3
|
111
131
|
summary: Ruby Enumerations
|