yinum 1.7.3 → 1.7.4

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: 2c63699e6b2f39a6fafb079fa52596f79bdbf58e
4
- data.tar.gz: 3693827578af653b27489c630592b995829f7e3e
3
+ metadata.gz: 9bfe06e2e4c74e29a8558790e3fd3cbb7e9c0d88
4
+ data.tar.gz: f056d6709135cb56989fe410604294e338501c61
5
5
  SHA512:
6
- metadata.gz: 40532b803d520af6ad8a9543ad15c76089a1ad32cfa627cdf9d143a3f6d44e59c2d3b12808d9068cea538d064c386c2ef1d510048193afe1d5bac3f13ca55073
7
- data.tar.gz: 561be7c18be076fd5ca2500b4fc76e57604ac36827d255afe1a7cbda267d0a8571a2df1fd58ed55031e6c76f18a0620905319e92bde1736cb798c5913376aed7
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- yinum (1.7.3)
4
+ yinum (1.7.4)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
@@ -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) { v = super(); (v.nil? or not e.values.include?(v)) ? Enum::EnumValue.new(e, v) : e[v] }
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
- if v.enum_value?
28
+ case
29
+ when v.enum_value?
26
30
  super(v.value)
27
- elsif v.nil? or v == "" # might be received from forms
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 Object
46
- extend Enum::Helpers::EnumAttribute
49
+ # Every module or class shall have it
50
+ class Module
51
+ include Enum::Helpers::EnumAttribute
47
52
  end
@@ -6,6 +6,7 @@ module Enum::Helpers::EnumGenerator
6
6
  end
7
7
  end
8
8
 
9
- class Object
9
+ # Every module or class shall have it
10
+ class Module
10
11
  include Enum::Helpers::EnumGenerator
11
12
  end
data/lib/enum/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Enum
2
- VERSION = '1.7.3'
2
+ VERSION = '1.7.4'
3
3
  end
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| self[name_or_value] } if name_or_values.length > 1
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
- ev = @by_name_s[name_or_value.to_s] || @by_value_s[name_or_value.to_s]
36
- raise "#{inspect} does not know #{name_or_value.inspect}" if ev.nil?
37
- ev
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yinum
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.3
4
+ version: 1.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oded Niv