hashlib 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hashlib.rb +31 -0
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 06acc20f03a87a604bf91d5f01283671a36e6c39
4
- data.tar.gz: 0bb93e5a5453b2644c02581228cc1c1c3922febe
3
+ metadata.gz: 61b6fe87bc44efa6061512b91b0550bdb0b8242a
4
+ data.tar.gz: 0c61cd2d7f685beb5ab64f9677e0a8d6a0e3fb5c
5
5
  SHA512:
6
- metadata.gz: 2aa8bb47afa7f884c1af8db51730260432ea630ba641e48bb39245c44589f37ed94d87148ac827ae456a53a61f6f7e4b1cb52b1b5aacb1ecfc59c068aa141a42
7
- data.tar.gz: 4f1276cd12503aecc4a1ebd9996b35266885d2175b88fff77ab30a7e68ffb684b0f931bacc00e3ef4032572490c7302bd60fd216cf3fe075dff3f7969fbb2466
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hashlib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gary Hetzel