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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f83d5120f74fb0018f3f01cf14cb87714774e958
4
- data.tar.gz: 40b0fd82cce13042712335f444845812db8d1574
3
+ metadata.gz: 6edd799712997205ba794ff397e41260933a940f
4
+ data.tar.gz: 663e8e9726a6eb1253cc8cc9ab2d3ac78b02040e
5
5
  SHA512:
6
- metadata.gz: 6d979e2623acaca3f13a98e2784c9671edd6050d8148b44d20e3e9fffd4f12427661b226e15d889c6de2ca2edb4d9804df3017bbd300c48e1d236e0c0c13de2e
7
- data.tar.gz: cd0b6f621d3313797b7087ea74ab097f9290aaa68b93dd67b66e6a2b4e36f1c64a2c3cbefa1a2240bad7f441709810a44172f6c6cbd35c87eaa93465a892ee93
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
@@ -1,3 +1,3 @@
1
1
  module EPluribusEnum
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  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.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: 2016-07-27 00:00:00.000000000 Z
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.1
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.