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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OGE1NDlmMWQ0Yzk2OGRhNDdlOTY0NGRhZWYzYTMyNzFmMzllMzM0Ng==
4
+ ZTQ1ODdjYzBkYmVmMTFlZGUyOWVlOWQwZjQ2Mzk1MDcwYTg2NzdmMA==
5
5
  data.tar.gz: !binary |-
6
- MzYyYTRhMTNlNDYwNjY5NDk0YjQzNjRlMjU4MDkzZjk3MTlhNTkwZQ==
6
+ YThmNWFkNDBiY2Y3MjVhYWI3YzAzNDI2ZjgxOWY2MTcwYWJkNGY4ZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- M2ZiMTBkZjU1MTRjMDk2N2I3Y2JlYWQ4YmNlN2E1MGU2N2ExZWMxNGU4NWI2
10
- NWJiMjI0MTA3MDM5N2YzZTNlMDcxM2UzYmJlY2ZkMzdmNGZmMGYzMDdjMjVi
11
- ODE3MGM2MmEwNGQ0YWZhYzZiNzk0ODU5ZDJiYzJiN2QxMzRhOGE=
9
+ ZmRhZjcwYjZjZDAxMjRkODBlYjk1NmVmYjhjN2VlODA4NDg4ZGE5Zjc3NTI4
10
+ YTQ5YmU5NWI3ZjlmMWRiYTU4OTFkNGI3NTczZWQ1MGM4ZDcyNzRhNTgyOTc1
11
+ YmE3NTM1MmM0NDdhYTI2NDA5ZDZiZjA4ZGJjZmJlN2ExZDM1NTM=
12
12
  data.tar.gz: !binary |-
13
- ZmRhZDQ2NmVjZmEwOWNhZGEwOTE1YjI2OGE2ZWNkOTM2NzM1MTI5YTdiZTYz
14
- NzkzMjM2OWIyYTVhY2E2ZTFiZGU2OTAzYzQ0MzdkYTQ4ZjRmZDBiN2IzYTkz
15
- ZWExNWUzYzhkMzFjNzY5YjAzYzhkNGVjNjY5ZTJkYWI1NGQ2MGQ=
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(field, possible_keyvalues)
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 field, possible_keyvalue, possible_keyvalue
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 "#{field}_#{possible_keyvalue}".intern, -> {where(field.intern => possible_keyvalue)}
17
+ scope "#{attribute}_#{possible_keyvalue}".intern, -> {where(attribute.intern => possible_keyvalue)}
18
18
  end
19
- define_singleton_method "#{field}_possible_keyvalues" do
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 field, possible_keyvalue, possible_value
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 "#{field}_#{possible_keyvalue}".intern, -> {where(field.intern => possible_value)}
28
+ scope "#{attribute}_#{possible_keyvalue}".intern, -> {where(attribute.intern => possible_value)}
29
29
  end
30
- define_singleton_method "#{field}_possible_keyvalues" do
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
@@ -1,3 +1,3 @@
1
1
  module ManagedEnum
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -126,3 +126,5 @@ Connecting to database specified by database.yml
126
126
   (7.8ms) INSERT INTO "schema_migrations" (version) VALUES ('20150505210140')
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
@@ -133,3 +133,143 @@ Connecting to database specified by database.yml
133
133
   (0.0ms) rollback transaction
134
134
   (0.0ms) begin transaction
135
135
   (0.0ms) rollback transaction
136
+ Connecting to database specified by database.yml
137
+  (0.5ms) begin transaction
138
+  (0.1ms) rollback transaction
139
+  (0.1ms) begin transaction
140
+  (0.0ms) rollback transaction
141
+  (0.0ms) begin transaction
142
+  (0.0ms) rollback transaction
143
+  (0.0ms) begin transaction
144
+  (0.0ms) rollback transaction
145
+  (0.0ms) begin transaction
146
+  (0.0ms) rollback transaction
147
+  (0.0ms) begin transaction
148
+  (0.0ms) rollback transaction
149
+  (0.0ms) begin transaction
150
+  (0.0ms) rollback transaction
151
+ Connecting to database specified by database.yml
152
+  (18.4ms) begin transaction
153
+  (0.1ms) rollback transaction
154
+  (0.1ms) begin transaction
155
+  (0.1ms) rollback transaction
156
+  (0.1ms) begin transaction
157
+  (0.0ms) rollback transaction
158
+  (0.0ms) begin transaction
159
+  (0.0ms) rollback transaction
160
+  (0.1ms) begin transaction
161
+  (0.0ms) rollback transaction
162
+  (0.1ms) begin transaction
163
+  (0.1ms) rollback transaction
164
+  (0.1ms) begin transaction
165
+  (0.1ms) rollback transaction
166
+ Connecting to database specified by database.yml
167
+  (0.6ms) begin transaction
168
+  (0.1ms) rollback transaction
169
+  (0.1ms) begin transaction
170
+  (0.0ms) rollback transaction
171
+  (0.1ms) begin transaction
172
+  (0.0ms) rollback transaction
173
+  (0.1ms) begin transaction
174
+  (0.0ms) rollback transaction
175
+  (0.0ms) begin transaction
176
+  (0.1ms) rollback transaction
177
+  (0.0ms) begin transaction
178
+  (0.0ms) rollback transaction
179
+  (0.0ms) begin transaction
180
+  (0.0ms) rollback transaction
181
+ Connecting to database specified by database.yml
182
+  (0.5ms) begin transaction
183
+  (0.1ms) rollback transaction
184
+  (0.1ms) begin transaction
185
+  (0.1ms) rollback transaction
186
+  (0.0ms) begin transaction
187
+  (0.0ms) rollback transaction
188
+  (0.0ms) begin transaction
189
+  (0.0ms) rollback transaction
190
+  (0.1ms) begin transaction
191
+  (0.0ms) rollback transaction
192
+  (0.0ms) begin transaction
193
+  (0.0ms) rollback transaction
194
+  (0.1ms) begin transaction
195
+  (0.1ms) rollback transaction
196
+ Connecting to database specified by database.yml
197
+  (0.6ms) begin transaction
198
+  (0.1ms) rollback transaction
199
+  (0.0ms) begin transaction
200
+  (0.0ms) rollback transaction
201
+  (0.0ms) begin transaction
202
+  (0.0ms) rollback transaction
203
+  (0.0ms) begin transaction
204
+  (0.0ms) rollback transaction
205
+  (0.1ms) begin transaction
206
+  (0.0ms) rollback transaction
207
+  (0.1ms) begin transaction
208
+  (0.0ms) rollback transaction
209
+  (0.0ms) begin transaction
210
+  (0.0ms) rollback transaction
211
+ Connecting to database specified by database.yml
212
+  (0.5ms) begin transaction
213
+  (0.1ms) rollback transaction
214
+  (0.1ms) begin transaction
215
+  (0.1ms) rollback transaction
216
+  (0.0ms) begin transaction
217
+  (0.0ms) rollback transaction
218
+  (0.0ms) begin transaction
219
+  (0.0ms) rollback transaction
220
+  (0.0ms) begin transaction
221
+  (0.0ms) rollback transaction
222
+  (0.1ms) begin transaction
223
+  (0.0ms) rollback transaction
224
+  (0.1ms) begin transaction
225
+  (0.1ms) rollback transaction
226
+ Connecting to database specified by database.yml
227
+  (0.6ms) begin transaction
228
+  (0.1ms) rollback transaction
229
+  (0.1ms) begin transaction
230
+  (0.1ms) rollback transaction
231
+  (0.1ms) begin transaction
232
+  (0.1ms) rollback transaction
233
+  (0.0ms) begin transaction
234
+  (0.0ms) rollback transaction
235
+  (0.0ms) begin transaction
236
+  (0.0ms) rollback transaction
237
+  (0.0ms) begin transaction
238
+  (0.0ms) rollback transaction
239
+  (0.0ms) begin transaction
240
+  (0.0ms) rollback transaction
241
+ Connecting to database specified by database.yml
242
+  (0.5ms) begin transaction
243
+  (0.1ms) rollback transaction
244
+  (0.1ms) begin transaction
245
+  (0.0ms) rollback transaction
246
+  (0.0ms) begin transaction
247
+  (0.0ms) rollback transaction
248
+  (0.0ms) begin transaction
249
+  (0.0ms) rollback transaction
250
+  (0.0ms) begin transaction
251
+  (0.0ms) rollback transaction
252
+  (0.1ms) begin transaction
253
+  (0.0ms) rollback transaction
254
+  (0.0ms) begin transaction
255
+  (0.1ms) 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
+  (0.6ms) begin transaction
263
+  (0.1ms) rollback transaction
264
+  (0.1ms) begin transaction
265
+  (0.0ms) rollback transaction
266
+  (0.0ms) begin transaction
267
+  (0.0ms) rollback transaction
268
+  (0.1ms) begin transaction
269
+  (0.0ms) rollback transaction
270
+  (0.0ms) begin transaction
271
+  (0.0ms) rollback transaction
272
+  (0.0ms) begin transaction
273
+  (0.0ms) rollback transaction
274
+  (0.0ms) begin transaction
275
+  (0.0ms) 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.1
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-06 00:00:00.000000000 Z
11
+ date: 2015-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails