abstractivator 0.0.15 → 0.0.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/abstractivator/enum.rb +29 -0
- data/lib/abstractivator/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e6c6a67da77c6728b25e2013b59dbf40817d4d4
|
4
|
+
data.tar.gz: 47241325bdc19a0ce1633d64f52d1a24dd459097
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1cc8d01dcaa14ec04d972598d8e342105fa2720f46384dae161345e42c29dbdfaa4ac6d79d5c0f541f402c088393112f569fef69d02394308ba9c8ac50de0bc
|
7
|
+
data.tar.gz: 24c5731465f66e1d607c083af1737866921f21dcac094eb53c0adf266a650fabd3f05d2ae79bd93c284efcd5c11342561bbd67e792ceef09d4277f6637f4d318
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'active_support/inflector'
|
2
|
+
|
3
|
+
module Enum
|
4
|
+
def self.included(base)
|
5
|
+
base.extend ClassMethods
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def values
|
10
|
+
self.constants.map{|sym| self.const_get(sym)}
|
11
|
+
end
|
12
|
+
|
13
|
+
def name_for(value)
|
14
|
+
self.constants.detect{|sym| self.const_get(sym) == value}
|
15
|
+
end
|
16
|
+
|
17
|
+
def from_symbol(sym)
|
18
|
+
safe_constantize("#{self.name}::#{sym.to_s.upcase}")
|
19
|
+
end
|
20
|
+
|
21
|
+
def safe_constantize(str)
|
22
|
+
begin
|
23
|
+
str.constantize
|
24
|
+
rescue NameError
|
25
|
+
fail "'#{str}' has not been defined as a constant"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abstractivator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Winton
|
@@ -83,6 +83,7 @@ files:
|
|
83
83
|
- lib/abstractivator.rb
|
84
84
|
- lib/abstractivator/collections.rb
|
85
85
|
- lib/abstractivator/cons.rb
|
86
|
+
- lib/abstractivator/enum.rb
|
86
87
|
- lib/abstractivator/enumerable_ext.rb
|
87
88
|
- lib/abstractivator/proc_ext.rb
|
88
89
|
- lib/abstractivator/trees.rb
|