yinum 1.7.3 → 1.7.4
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +1 -1
- data/lib/enum/helpers/enum_attribute.rb +10 -5
- data/lib/enum/helpers/enum_generator.rb +2 -1
- data/lib/enum/version.rb +1 -1
- data/lib/enum.rb +9 -4
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9bfe06e2e4c74e29a8558790e3fd3cbb7e9c0d88
|
4
|
+
data.tar.gz: f056d6709135cb56989fe410604294e338501c61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c506d7599bc89186de7cd08a82b190cbd1c8ea15a50d2be068aa28301ad3454a2f0db3dc54de1189f705d005e45158091551760227574ed2e66a39353c5fbfe1
|
7
|
+
data.tar.gz: bfb8f3e6a05abb31a3c690da0fde44f42fcf84f5dabb58b72c2e2129ac8e4d4b080406857c557ee66738204a17bb15ba97feb2b7d2896e7c91891cc4ea7cdd25
|
data/CHANGELOG.md
CHANGED
@@ -16,3 +16,7 @@
|
|
16
16
|
**1.7.3**
|
17
17
|
* `attr_enum`'s writer to accept empty string.
|
18
18
|
* `attr_enum`'s qualifier option to use the object's `#send` rather than `#[]`.
|
19
|
+
|
20
|
+
**1.7.4**
|
21
|
+
* `attr_enum`'s reader allows super to hold the name etc.
|
22
|
+
* Add `#attr_enum` and `#enum` only to modules and classes (not any instance).
|
data/Gemfile.lock
CHANGED
@@ -19,12 +19,16 @@ module Enum::Helpers::EnumAttribute
|
|
19
19
|
e = const_get(name_or_enum)
|
20
20
|
end
|
21
21
|
# attribute reader
|
22
|
-
define_method(attr)
|
22
|
+
define_method(attr) do
|
23
|
+
v = super()
|
24
|
+
(ev = e.get(v)).nil? ? Enum::EnumValue.new(e, v) : ev
|
25
|
+
end
|
23
26
|
# attribute writer
|
24
27
|
define_method("#{attr}=") do |v|
|
25
|
-
|
28
|
+
case
|
29
|
+
when v.enum_value?
|
26
30
|
super(v.value)
|
27
|
-
|
31
|
+
when v.nil?, v == "" # might be received from forms
|
28
32
|
super(v)
|
29
33
|
else
|
30
34
|
super(e[v].value)
|
@@ -42,6 +46,7 @@ module Enum::Helpers::EnumAttribute
|
|
42
46
|
end
|
43
47
|
end
|
44
48
|
|
45
|
-
class
|
46
|
-
|
49
|
+
# Every module or class shall have it
|
50
|
+
class Module
|
51
|
+
include Enum::Helpers::EnumAttribute
|
47
52
|
end
|
data/lib/enum/version.rb
CHANGED
data/lib/enum.rb
CHANGED
@@ -29,12 +29,17 @@ class Enum
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def [](*name_or_values)
|
32
|
-
return name_or_values.map { |name_or_value|
|
32
|
+
return name_or_values.map { |name_or_value| get(name_or_value) } if name_or_values.length > 1
|
33
33
|
|
34
34
|
name_or_value = name_or_values.first
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
get(name_or_value) or raise "#{inspect} does not know #{name_or_value.inspect}"
|
36
|
+
end
|
37
|
+
|
38
|
+
def get(*name_or_values)
|
39
|
+
return name_or_values.map { |name_or_value| get(name_or_value) } if name_or_values.length > 1
|
40
|
+
|
41
|
+
name_or_value = name_or_values.first
|
42
|
+
@by_name_s[name_or_value.to_s] || @by_value_s[name_or_value.to_s]
|
38
43
|
end
|
39
44
|
|
40
45
|
def options
|