galetahub-enum_field 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +9 -7
- data/lib/enum_field/builder.rb +7 -2
- data/lib/enum_field/define_enum.rb +2 -2
- data/lib/enum_field/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96da53c393009eaee6d98a66b4107c243577a44c
|
4
|
+
data.tar.gz: 7c17bffc0d29bfdb5b8399341031bb296f287835
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ae37aca910cbef3b82a0a67ea4003368c5b832654fcd404b9e45d4e986bbe5f371c2b10f2381c9448d92c064e2111ca487b09cb2937c39d94da306b7ba8a764
|
7
|
+
data.tar.gz: fca89c19f39e43eadca5395b860d3d3fc9d6b8a669dd0ad37820d5511a25e1a6bce8f86f442aa95e716ac6c69edb641e5667b70129ef8bb5786dbafae71e1e70
|
data/README.rdoc
CHANGED
@@ -7,6 +7,10 @@
|
|
7
7
|
Enables Active Record attributes to point to enum like objects, by saving in your database
|
8
8
|
only an integer ID.
|
9
9
|
|
10
|
+
== INSTALL:
|
11
|
+
|
12
|
+
gem 'galetahub-enum_field', require: 'enum_field'
|
13
|
+
|
10
14
|
|
11
15
|
== FEATURES:
|
12
16
|
|
@@ -27,7 +31,7 @@ several options.
|
|
27
31
|
* You can use a string to identify, for instance, the role.
|
28
32
|
* You can use an id to identify the role.
|
29
33
|
|
30
|
-
If you are not
|
34
|
+
If you are not comfortable with any of this options, maybe +enum_field+ is an answer for you.
|
31
35
|
|
32
36
|
== BASIC USAGE:
|
33
37
|
|
@@ -54,6 +58,9 @@ If you are not confortable with any of this options, maybe +enum_field+ is an an
|
|
54
58
|
user.role = Role.manager
|
55
59
|
user.role_id == Role.manager.id #will be true
|
56
60
|
|
61
|
+
Role.manager.name # :manager
|
62
|
+
user.role.name # :manager
|
63
|
+
|
57
64
|
User.first.role.id == User.first.role_id #will be true
|
58
65
|
|
59
66
|
Your enum classes can have all the methods you need:
|
@@ -108,7 +115,7 @@ The library also mimics has_many :through behavior, for cases such as:
|
|
108
115
|
|
109
116
|
class UserRole < ActiveRecord::Base
|
110
117
|
extend EnumField::EnumeratedAttribute
|
111
|
-
|
118
|
+
|
112
119
|
belongs_to :user
|
113
120
|
enumerated_attribute :role
|
114
121
|
end
|
@@ -129,11 +136,6 @@ The library also mimics has_many :through behavior, for cases such as:
|
|
129
136
|
|
130
137
|
* activerecord
|
131
138
|
|
132
|
-
|
133
|
-
== INSTALL:
|
134
|
-
|
135
|
-
gem 'galetahub-enum_field', :require => 'enum_field'
|
136
|
-
|
137
139
|
== LICENSE:
|
138
140
|
|
139
141
|
(The MIT License)
|
data/lib/enum_field/builder.rb
CHANGED
@@ -15,6 +15,7 @@ module EnumField
|
|
15
15
|
def member(name, options = {})
|
16
16
|
obj, candidate_id = process_options(options)
|
17
17
|
assign_id(obj, candidate_id)
|
18
|
+
assign_name(obj, name)
|
18
19
|
define_in_meta(name) { obj }
|
19
20
|
save(name, obj)
|
20
21
|
obj.freeze
|
@@ -34,9 +35,9 @@ module EnumField
|
|
34
35
|
|
35
36
|
def find_by_id(id)
|
36
37
|
case id
|
37
|
-
when Integer, String, Float, Fixnum then
|
38
|
+
when Integer, String, Float, Fixnum then
|
38
39
|
@id2obj[id.to_i]
|
39
|
-
when Array then
|
40
|
+
when Array then
|
40
41
|
id.inject([]) do |items, value|
|
41
42
|
if value && value.respond_to?(:to_i)
|
42
43
|
items << @id2obj[value.to_i]
|
@@ -62,6 +63,10 @@ module EnumField
|
|
62
63
|
obj.instance_variable_set(:@id, id)
|
63
64
|
end
|
64
65
|
|
66
|
+
def assign_name(obj, name)
|
67
|
+
obj.instance_variable_set(:@name, name)
|
68
|
+
end
|
69
|
+
|
65
70
|
def new_id(candidate)
|
66
71
|
validate_candidate_id(candidate)
|
67
72
|
candidate || find_next_id
|
data/lib/enum_field/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: galetahub-enum_field
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Galeta
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-12-11 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Enables Active Record attributes to point to enum like objects, by saving
|
15
15
|
in your database only an integer ID
|