document_hash 0.0.8 → 0.0.9

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.
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ document_hash
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-1.9.3-p429
@@ -2,11 +2,14 @@ module DocumentHash
2
2
  class Core < Hash
3
3
  def self.[] *attr
4
4
  super(*attr).tap do|new|
5
- new.each do |k,v|
6
- new[k] = new.class[v] if v.is_a?(Hash) && ! v.is_a?(self.class)
5
+ new.keys.each do |k|
6
+ if new[k].is_a?(Hash) && ! new[k].is_a?(self.class)
7
+ new[k] = new.class[new.delete(k)]
8
+ else
9
+ new[k] = new.delete(k)
10
+ end
7
11
  end
8
-
9
- symbolize_keys new
12
+ #symbolize_keys new
10
13
  end
11
14
  end
12
15
 
@@ -47,15 +50,10 @@ module DocumentHash
47
50
  end
48
51
 
49
52
  def merge! other
50
- # self.class.symbolize_keys other
51
- # other = Hash[ other.collect{ |k, v| [ k, execute_before_change_callback(k,v) ] } ]
52
- # super other
53
- # other.each { |k, v| changed_key k,v }
54
-
55
- other.each { |k,v| self[k] = v }
56
- end
57
-
58
- def deep_merge! other
53
+ self.class.symbolize_keys other
54
+ other = Hash[ other.collect{ |k, v| [ k, execute_before_change_callback(k,v) ] } ]
55
+ super other
56
+ other.each { |k, v| changed_key k,v }
59
57
  end
60
58
 
61
59
  private
@@ -1,3 +1,3 @@
1
1
  module DocumentHash
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: document_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -37,6 +37,8 @@ extra_rdoc_files: []
37
37
  files:
38
38
  - .gitignore
39
39
  - .rspec
40
+ - .ruby-gemset
41
+ - .ruby-version
40
42
  - Gemfile
41
43
  - LICENSE.txt
42
44
  - README.md
@@ -68,7 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
70
  version: '0'
69
71
  requirements: []
70
72
  rubyforge_project:
71
- rubygems_version: 1.8.24
73
+ rubygems_version: 1.8.25
72
74
  signing_key:
73
75
  specification_version: 3
74
76
  summary: Document Object