hashlib 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/hashlib.rb +31 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 61b6fe87bc44efa6061512b91b0550bdb0b8242a
|
4
|
+
data.tar.gz: 0c61cd2d7f685beb5ab64f9677e0a8d6a0e3fb5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20c334a2514053e88006c07f352da46f41e5aa199bc13f78d2374a124e7c9e2ac22402c4dd4e29cb49a7f7721a972012394002e97d35d2ff42d1ef1fc731a8e2
|
7
|
+
data.tar.gz: b0ac8be93c2c9c252faa87642c37b11a58cd5ebb978d038d0d143bfbe052fe26b4fef8dd87fce141186f2edcc963d4d72898ab01688df423911cc2c8243786bb
|
data/lib/hashlib.rb
CHANGED
@@ -15,6 +15,37 @@ class Hash
|
|
15
15
|
def get(path, default=nil)
|
16
16
|
root = self
|
17
17
|
|
18
|
+
begin
|
19
|
+
path = path.to_s.split('.') unless path.is_a?(Array)
|
20
|
+
|
21
|
+
path.each do |key|
|
22
|
+
key = key.to_s
|
23
|
+
|
24
|
+
if root.is_a?(Array)
|
25
|
+
rv = nil
|
26
|
+
|
27
|
+
root.each do |r|
|
28
|
+
if r.has_key?(key)
|
29
|
+
rv = r[key]
|
30
|
+
break
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
root = rv
|
35
|
+
else
|
36
|
+
root = (root[key] rescue nil)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
return (root.nil? ? default : root)
|
41
|
+
rescue NoMethodError
|
42
|
+
return default
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def find(path, default=nil)
|
47
|
+
root = self
|
48
|
+
|
18
49
|
begin
|
19
50
|
if not path.is_a?(Array)
|
20
51
|
path = path.to_s.strip.scan(/[a-z0-9\@\_\-\+]+(?:\[[^\]]+\])?/).to_a
|