document_hash 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/lib/document_hash/core.rb +11 -13
- data/lib/document_hash/version.rb +1 -1
- metadata +4 -2
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
document_hash
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-1.9.3-p429
|
data/lib/document_hash/core.rb
CHANGED
@@ -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
|
6
|
-
new[k]
|
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
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
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
|
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.
|
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.
|
73
|
+
rubygems_version: 1.8.25
|
72
74
|
signing_key:
|
73
75
|
specification_version: 3
|
74
76
|
summary: Document Object
|