managed_enum 0.0.1 → 0.0.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.
- checksums.yaml +8 -8
- data/README.md +6 -0
- data/lib/managed_enum/has_managed_enum.rb +23 -7
- data/lib/managed_enum/version.rb +1 -1
- data/test/dummy/log/development.log +2 -0
- data/test/dummy/log/test.log +140 -0
- data/test/has_managed_enum_test.rb +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
ZTQ1ODdjYzBkYmVmMTFlZGUyOWVlOWQwZjQ2Mzk1MDcwYTg2NzdmMA==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
YThmNWFkNDBiY2Y3MjVhYWI3YzAzNDI2ZjgxOWY2MTcwYWJkNGY4ZA==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
ZmRhZjcwYjZjZDAxMjRkODBlYjk1NmVmYjhjN2VlODA4NDg4ZGE5Zjc3NTI4
|
|
10
|
+
YTQ5YmU5NWI3ZjlmMWRiYTU4OTFkNGI3NTczZWQ1MGM4ZDcyNzRhNTgyOTc1
|
|
11
|
+
YmE3NTM1MmM0NDdhYTI2NDA5ZDZiZjA4ZGJjZmJlN2ExZDM1NTM=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
NTFkMTYwZjQ0NmQ4YzFlZjNiNDAyNDBkYmRjYTAzYjBhMDdmZTdjZDQ1NmM5
|
|
14
|
+
MDMzN2FjMDU0MWMzOTQ5OTNkMmU3ZjgxYmZlN2NkZjY3NzQ4OTk4ZGUwMjhj
|
|
15
|
+
NzExZDQ0MmRkY2JmZjU4MjVkMzg3NDk5NTc5NGE3YzhhMjhiMmM=
|
data/README.md
CHANGED
|
@@ -46,6 +46,12 @@ Person.EMPLOYED
|
|
|
46
46
|
Person.SELF_EMPLOYED
|
|
47
47
|
# => "self_employed"
|
|
48
48
|
|
|
49
|
+
Person.age_phase_baby.all
|
|
50
|
+
# => Person Load (0.2ms) SELECT "people".* FROM "people" WHERE "people"."age_phase" = 10
|
|
51
|
+
|
|
52
|
+
Person.status_employed.all
|
|
53
|
+
# => Person Load (0.2ms) SELECT "people".* FROM "people" WHERE "people"."status" = "employed"
|
|
54
|
+
|
|
49
55
|
# INSTANCE METHODS
|
|
50
56
|
person = Person.new
|
|
51
57
|
|
|
@@ -7,27 +7,27 @@ module ManagedEnum
|
|
|
7
7
|
|
|
8
8
|
module ClassMethods
|
|
9
9
|
|
|
10
|
-
def has_managed_enum(
|
|
10
|
+
def has_managed_enum(attribute, possible_keyvalues)
|
|
11
11
|
if possible_keyvalues.is_a? Array
|
|
12
12
|
possible_keyvalues.each do |possible_keyvalue|
|
|
13
|
-
ManagedEnum::HasManagedEnum.define_instance_methods_for
|
|
13
|
+
ManagedEnum::HasManagedEnum.define_instance_methods_for attribute, possible_keyvalue, possible_keyvalue
|
|
14
14
|
define_singleton_method possible_keyvalue.upcase do
|
|
15
15
|
possible_keyvalue
|
|
16
16
|
end
|
|
17
|
-
scope "#{
|
|
17
|
+
scope "#{attribute}_#{possible_keyvalue}".intern, -> {where(attribute.intern => possible_keyvalue)}
|
|
18
18
|
end
|
|
19
|
-
define_singleton_method "#{
|
|
19
|
+
define_singleton_method "#{attribute}_possible_keyvalues" do
|
|
20
20
|
possible_keyvalues
|
|
21
21
|
end
|
|
22
22
|
elsif possible_keyvalues.is_a? Hash
|
|
23
23
|
possible_keyvalues.each do |possible_keyvalue, possible_value|
|
|
24
|
-
ManagedEnum::HasManagedEnum.define_instance_methods_for
|
|
24
|
+
ManagedEnum::HasManagedEnum.define_instance_methods_for attribute, possible_keyvalue, possible_value
|
|
25
25
|
define_singleton_method possible_keyvalue.upcase do
|
|
26
26
|
possible_value
|
|
27
27
|
end
|
|
28
|
-
scope "#{
|
|
28
|
+
scope "#{attribute}_#{possible_keyvalue}".intern, -> {where(attribute.intern => possible_value)}
|
|
29
29
|
end
|
|
30
|
-
define_singleton_method "#{
|
|
30
|
+
define_singleton_method "#{attribute}_possible_keyvalues" do
|
|
31
31
|
possible_keyvalues
|
|
32
32
|
end
|
|
33
33
|
end
|
|
@@ -42,6 +42,22 @@ module ManagedEnum
|
|
|
42
42
|
define_method "make_#{possible_keyvalue}" do
|
|
43
43
|
self.send "#{attribute}=", possible_value
|
|
44
44
|
end
|
|
45
|
+
define_method "#{attribute}_as_string" do
|
|
46
|
+
current_value = self.send(attribute)
|
|
47
|
+
all_values = self.class.send("#{attribute}_possible_keyvalues")
|
|
48
|
+
to_return = ''
|
|
49
|
+
if all_values.is_a?(Hash)
|
|
50
|
+
all_values.each do |some_key, some_value|
|
|
51
|
+
if some_value == current_value
|
|
52
|
+
to_return = some_key.to_s
|
|
53
|
+
break
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
elsif all_values.is_a?(Array)
|
|
57
|
+
to_return = current_value
|
|
58
|
+
end
|
|
59
|
+
to_return
|
|
60
|
+
end
|
|
45
61
|
end
|
|
46
62
|
end
|
|
47
63
|
end
|
data/lib/managed_enum/version.rb
CHANGED
|
@@ -126,3 +126,5 @@ Connecting to database specified by database.yml
|
|
|
126
126
|
[1m[36m (7.8ms)[0m [1mINSERT INTO "schema_migrations" (version) VALUES ('20150505210140')[0m
|
|
127
127
|
Connecting to database specified by database.yml
|
|
128
128
|
Connecting to database specified by database.yml
|
|
129
|
+
Connecting to database specified by database.yml
|
|
130
|
+
Connecting to database specified by database.yml
|
data/test/dummy/log/test.log
CHANGED
|
@@ -133,3 +133,143 @@ Connecting to database specified by database.yml
|
|
|
133
133
|
[1m[35m (0.0ms)[0m rollback transaction
|
|
134
134
|
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
135
135
|
[1m[35m (0.0ms)[0m rollback transaction
|
|
136
|
+
Connecting to database specified by database.yml
|
|
137
|
+
[1m[36m (0.5ms)[0m [1mbegin transaction[0m
|
|
138
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
139
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
140
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
141
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
142
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
143
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
144
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
145
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
146
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
147
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
148
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
149
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
150
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
151
|
+
Connecting to database specified by database.yml
|
|
152
|
+
[1m[36m (18.4ms)[0m [1mbegin transaction[0m
|
|
153
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
154
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
155
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
156
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
157
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
158
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
159
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
160
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
161
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
162
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
163
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
164
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
165
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
166
|
+
Connecting to database specified by database.yml
|
|
167
|
+
[1m[36m (0.6ms)[0m [1mbegin transaction[0m
|
|
168
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
169
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
170
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
171
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
172
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
173
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
174
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
175
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
176
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
177
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
178
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
179
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
180
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
181
|
+
Connecting to database specified by database.yml
|
|
182
|
+
[1m[36m (0.5ms)[0m [1mbegin transaction[0m
|
|
183
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
184
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
185
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
186
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
187
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
188
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
189
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
190
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
191
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
192
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
193
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
194
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
195
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
196
|
+
Connecting to database specified by database.yml
|
|
197
|
+
[1m[36m (0.6ms)[0m [1mbegin transaction[0m
|
|
198
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
199
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
200
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
201
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
202
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
203
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
204
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
205
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
206
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
207
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
208
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
209
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
210
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
211
|
+
Connecting to database specified by database.yml
|
|
212
|
+
[1m[36m (0.5ms)[0m [1mbegin transaction[0m
|
|
213
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
214
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
215
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
216
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
217
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
218
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
219
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
220
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
221
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
222
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
223
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
224
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
225
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
226
|
+
Connecting to database specified by database.yml
|
|
227
|
+
[1m[36m (0.6ms)[0m [1mbegin transaction[0m
|
|
228
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
229
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
230
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
231
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
232
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
233
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
234
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
235
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
236
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
237
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
238
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
239
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
240
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
241
|
+
Connecting to database specified by database.yml
|
|
242
|
+
[1m[36m (0.5ms)[0m [1mbegin transaction[0m
|
|
243
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
244
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
245
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
246
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
247
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
248
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
249
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
250
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
251
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
252
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
253
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
254
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
255
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
256
|
+
Connecting to database specified by database.yml
|
|
257
|
+
Connecting to database specified by database.yml
|
|
258
|
+
Connecting to database specified by database.yml
|
|
259
|
+
Connecting to database specified by database.yml
|
|
260
|
+
Connecting to database specified by database.yml
|
|
261
|
+
Connecting to database specified by database.yml
|
|
262
|
+
[1m[36m (0.6ms)[0m [1mbegin transaction[0m
|
|
263
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
|
264
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
265
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
266
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
267
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
268
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
|
269
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
270
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
271
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
272
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
273
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
274
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
|
275
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
|
@@ -36,6 +36,7 @@ class HasManagedEnumTest < ActiveSupport::TestCase
|
|
|
36
36
|
person.make_baby
|
|
37
37
|
assert_equal true, person.baby?
|
|
38
38
|
assert_equal 10, person.age_phase
|
|
39
|
+
assert_equal 'baby', person.age_phase_as_string
|
|
39
40
|
end
|
|
40
41
|
|
|
41
42
|
def test_a_person_should_become_an_unemployed
|
|
@@ -44,5 +45,6 @@ class HasManagedEnumTest < ActiveSupport::TestCase
|
|
|
44
45
|
person.make_unemployed
|
|
45
46
|
assert_equal true, person.unemployed?
|
|
46
47
|
assert_equal 'unemployed', person.status
|
|
48
|
+
assert_equal 'unemployed', person.status_as_string
|
|
47
49
|
end
|
|
48
50
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: managed_enum
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Maher El-Atawy
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-05-
|
|
11
|
+
date: 2015-05-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|