dot_hash 0.2.8 → 0.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.
@@ -8,26 +8,25 @@ module DotHash
8
8
  end
9
9
 
10
10
  def method_missing(key, *args, &block)
11
- symbolize_key key
12
11
  has_key?(key) ?
13
12
  execute(key, *args, &block) :
14
13
  super(key, *args, &block)
15
14
  end
16
15
 
17
16
  def respond_to?(key)
18
- symbolize_key key
19
17
  has_key?(key) or super(key)
20
18
  end
21
19
 
22
20
  def [](key)
23
- symbolize_key key
24
21
  get_value(key)
25
22
  end
26
23
 
27
24
  private
28
25
 
29
26
  def has_key?(key)
30
- hash.has_key?(key.to_sym) or hash.respond_to?(key)
27
+ hash.has_key?(key.to_sym) or
28
+ hash.has_key?(key.to_s) or
29
+ hash.respond_to?(key)
31
30
  end
32
31
 
33
32
  def execute(key, *args, &block)
@@ -37,15 +36,10 @@ module DotHash
37
36
  end
38
37
 
39
38
  def get_value(key)
40
- key = key.to_sym
39
+ key = hash.has_key?(key.to_s) ? key.to_s : key.to_sym
41
40
  value = hash[key]
42
41
  return value unless value.is_a?(Hash)
43
42
  hash[key] = self.class.new value
44
43
  end
45
-
46
- def symbolize_key(key)
47
- return unless hash.has_key?(key.to_s)
48
- hash[key.to_sym] = hash.delete key.to_s
49
- end
50
44
  end
51
45
  end
@@ -1,3 +1,3 @@
1
1
  module DotHash
2
- VERSION = "0.2.8"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dot_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -66,7 +66,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
66
66
  version: '0'
67
67
  segments:
68
68
  - 0
69
- hash: -1533631301402391866
69
+ hash: -618655920888708363
70
70
  required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  none: false
72
72
  requirements:
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  version: '0'
76
76
  segments:
77
77
  - 0
78
- hash: -1533631301402391866
78
+ hash: -618655920888708363
79
79
  requirements: []
80
80
  rubyforge_project:
81
81
  rubygems_version: 1.8.24