yinum 1.2.0 → 1.3.0

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.
Files changed (4) hide show
  1. data/Gemfile.lock +1 -1
  2. data/lib/enum.rb +5 -3
  3. data/yinum.gemspec +1 -1
  4. metadata +2 -2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- yinum (1.1.0)
4
+ yinum (1.2.0)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
data/lib/enum.rb CHANGED
@@ -3,7 +3,7 @@ class Enum
3
3
  include Enumerable
4
4
 
5
5
  attr_reader :klass, :name, :by_name, :by_value
6
-
6
+
7
7
  def initialize(name, klass=nil, hash={})
8
8
  klass, hash = nil, klass if klass.is_a?(Hash)
9
9
  @name, @klass = name, klass
@@ -32,7 +32,7 @@ class Enum
32
32
  return name_or_values.map { |name_or_value| self[name_or_value] } if name_or_values.length > 1
33
33
 
34
34
  name_or_value = name_or_values.first
35
- ev = @by_name[name_or_value] || @by_value[name_or_value]
35
+ ev = @by_name_s[name_or_value.to_s] || @by_value_s[name_or_value.to_s]
36
36
  raise "#{inspect} does not know #{name_or_value.inspect}" if ev.nil?
37
37
  ev
38
38
  end
@@ -41,12 +41,14 @@ class Enum
41
41
  def map_hash(hash)
42
42
  @by_name = {}
43
43
  @by_value = {}
44
+ @by_name_s = {}
45
+ @by_value_s = {}
44
46
  hash.each do |n, v|
45
47
  n, v = v, n if v.is_a?(Symbol) or n.is_a?(Numeric)
46
48
  raise "duplicate enum name #{n} for #{to_s}" if @by_name.has_key?(n)
47
49
  raise "duplicate enum value #{v} for #{to_s}.#{n}" if @by_value.has_key?(v)
48
50
  raise "value can't be nil for #{to_s}.#{n}" if v.nil?
49
- @by_name[n] = @by_value[v] = EnumValue.new(self, n, v)
51
+ @by_name_s[n.to_s] = @by_value_s[v.to_s] = @by_name[n] = @by_value[v] = EnumValue.new(self, n, v)
50
52
  end
51
53
  @by_name.freeze
52
54
  @by_value.freeze
data/yinum.gemspec CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "yinum"
6
- s.version = "1.2.0"
6
+ s.version = "1.3.0"
7
7
  s.authors = ["Oded Niv"]
8
8
  s.email = ["oded.niv@gmail.com"]
9
9
  s.homepage = "https://github.com/toplex/enum"
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.2.0
4
+ version: 1.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-11 00:00:00.000000000 Z
12
+ date: 2013-03-23 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Yummy implementation of enum that gives integer values with a special
15
15
  wrapping.