e_pluribus_enum 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/e_pluribus_enum/enum.rb +40 -0
- data/lib/e_pluribus_enum/represents_enum.rb +21 -0
- data/lib/e_pluribus_enum/version.rb +1 -1
- metadata +6 -118
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6edd799712997205ba794ff397e41260933a940f
|
4
|
+
data.tar.gz: 663e8e9726a6eb1253cc8cc9ab2d3ac78b02040e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f68e1f391b13ddb4b7eb63b5f8ce8ba0a18c32856e2646b960a353868b0557e92765f37495d8a645c384a89259f43a82553aa4807c72680b775738017649756
|
7
|
+
data.tar.gz: 63948c0ba9d482e9d86b810780b7a82e2eac923fb8a49c20154dd948009ff6979c75e93055918bb6c8b632fe831a9d4e7b25c814f836420c058f384fbcb00be7
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module EPluribusEnum
|
2
|
+
class Enum
|
3
|
+
def Enum.add_item(key,value)
|
4
|
+
@hash ||= {}
|
5
|
+
@hash[key]=value
|
6
|
+
end
|
7
|
+
|
8
|
+
def Enum.const_missing(key)
|
9
|
+
@hash[key]
|
10
|
+
end
|
11
|
+
|
12
|
+
def Enum.each
|
13
|
+
@hash.each {|key,value| yield(key,value)}
|
14
|
+
end
|
15
|
+
|
16
|
+
def Enum.values
|
17
|
+
@hash.values || []
|
18
|
+
end
|
19
|
+
|
20
|
+
def Enum.keys
|
21
|
+
@hash.keys || []
|
22
|
+
end
|
23
|
+
|
24
|
+
def Enum.[](key)
|
25
|
+
@hash[key]
|
26
|
+
end
|
27
|
+
|
28
|
+
def Enum.value_for_key(key)
|
29
|
+
@hash[key]
|
30
|
+
end
|
31
|
+
|
32
|
+
def Enum.key_for_value(value)
|
33
|
+
@hash.invert[value]
|
34
|
+
end
|
35
|
+
|
36
|
+
def Enum.for_queries(arr)
|
37
|
+
ret = arr.collect{ |x| @hash[x.to_s.to_sym] }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module EPluribusEnum
|
2
|
+
module RepresentsEnum
|
3
|
+
def self.included(base)
|
4
|
+
base.extend ClassMethods
|
5
|
+
end
|
6
|
+
|
7
|
+
module ClassMethods
|
8
|
+
# you need the field as an integer in the database, but it doesn't need to be attr_accessible
|
9
|
+
def represents_enum(field, enum)
|
10
|
+
self.class_eval <<-METHOD, __FILE__, __LINE__ + 1
|
11
|
+
def #{field}
|
12
|
+
#{enum.name}.key_for_value read_attribute(:#{field})
|
13
|
+
end
|
14
|
+
def #{field}=(value)
|
15
|
+
write_attribute :#{field}, #{enum.name}[value.to_s.to_sym]
|
16
|
+
end
|
17
|
+
METHOD
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,129 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: e_pluribus_enum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicholas Watson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rails
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "<"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '5.1'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "<"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '5.1'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rspec-rails
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '3.2'
|
34
|
-
- - ">="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 3.2.0
|
37
|
-
type: :development
|
38
|
-
prerelease: false
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - "~>"
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '3.2'
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 3.2.0
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: rspec-its
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '1.1'
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: 1.1.0
|
57
|
-
type: :development
|
58
|
-
prerelease: false
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - "~>"
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '1.1'
|
64
|
-
- - ">="
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: 1.1.0
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: shoulda-matchers
|
69
|
-
requirement: !ruby/object:Gem::Requirement
|
70
|
-
requirements:
|
71
|
-
- - "~>"
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version: '2.8'
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 2.8.0
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '2.8'
|
84
|
-
- - ">="
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: 2.8.0
|
87
|
-
- !ruby/object:Gem::Dependency
|
88
|
-
name: database_cleaner
|
89
|
-
requirement: !ruby/object:Gem::Requirement
|
90
|
-
requirements:
|
91
|
-
- - "~>"
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '1.4'
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 1.4.0
|
97
|
-
type: :development
|
98
|
-
prerelease: false
|
99
|
-
version_requirements: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '1.4'
|
104
|
-
- - ">="
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: 1.4.0
|
107
|
-
- !ruby/object:Gem::Dependency
|
108
|
-
name: guard-rspec
|
109
|
-
requirement: !ruby/object:Gem::Requirement
|
110
|
-
requirements:
|
111
|
-
- - "~>"
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: '4.5'
|
114
|
-
- - ">="
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: 4.5.0
|
117
|
-
type: :development
|
118
|
-
prerelease: false
|
119
|
-
version_requirements: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '4.5'
|
124
|
-
- - ">="
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version: 4.5.0
|
11
|
+
date: 2017-07-05 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
127
13
|
description: I like symbols in my code, and integers in my database. I also like to
|
128
14
|
control the symbol's value. E Pluribus Enum, its like E pluribus unum, but for
|
129
15
|
code
|
@@ -137,7 +23,9 @@ files:
|
|
137
23
|
- README.md
|
138
24
|
- Rakefile
|
139
25
|
- lib/e_pluribus_enum.rb
|
26
|
+
- lib/e_pluribus_enum/enum.rb
|
140
27
|
- lib/e_pluribus_enum/enumeration.rb
|
28
|
+
- lib/e_pluribus_enum/represents_enum.rb
|
141
29
|
- lib/e_pluribus_enum/represents_enumeration.rb
|
142
30
|
- lib/e_pluribus_enum/version.rb
|
143
31
|
homepage: https://github.com/nwwatson/e_pluribus_enum
|
@@ -160,7 +48,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
48
|
version: '0'
|
161
49
|
requirements: []
|
162
50
|
rubyforge_project:
|
163
|
-
rubygems_version: 2.5.
|
51
|
+
rubygems_version: 2.5.2
|
164
52
|
signing_key:
|
165
53
|
specification_version: 4
|
166
54
|
summary: Ever had a model that stores symbos in field and wish they were integers.
|