deep_tree 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -0
- data/benchmarks/bad_path.rb +1 -1
- data/benchmarks/benchmark_helper.rb +2 -0
- data/benchmarks/good_path.rb +1 -1
- data/lib/deep_tree/deep_tree.rb +5 -9
- data/lib/deep_tree/hash.rb +2 -8
- data/lib/deep_tree/version.rb +1 -1
- metadata +57 -36
- checksums.yaml +0 -7
data/Gemfile
CHANGED
data/benchmarks/bad_path.rb
CHANGED
data/benchmarks/good_path.rb
CHANGED
data/lib/deep_tree/deep_tree.rb
CHANGED
@@ -5,15 +5,15 @@ class DeepTree
|
|
5
5
|
|
6
6
|
attr_accessor :tree
|
7
7
|
|
8
|
-
def self.get_leaf(parent, *args)
|
8
|
+
def self.get_leaf(parent, *args, &block)
|
9
9
|
args.each_with_index do |key, index|
|
10
10
|
result = case
|
11
11
|
when index == (args.length - 1)
|
12
|
-
return parent[key].nil? &&
|
12
|
+
return parent[key].nil? && block ? yield : parent[key]
|
13
13
|
when parent[key].is_a?(Hash)
|
14
14
|
parent = parent[key]
|
15
15
|
else
|
16
|
-
return
|
16
|
+
return block ? yield : nil
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -26,12 +26,8 @@ class DeepTree
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
def get_leaf(*args)
|
30
|
-
|
31
|
-
DeepTree.get_leaf(tree, *args) { yield }
|
32
|
-
else
|
33
|
-
DeepTree.get_leaf(tree, *args)
|
34
|
-
end
|
29
|
+
def get_leaf(*args, &block)
|
30
|
+
DeepTree.get_leaf( tree, *args, &block )
|
35
31
|
end
|
36
32
|
|
37
33
|
def method_missing(*args)
|
data/lib/deep_tree/hash.rb
CHANGED
data/lib/deep_tree/version.rb
CHANGED
metadata
CHANGED
@@ -1,36 +1,47 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: deep_tree
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 25
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
5
11
|
platform: ruby
|
6
|
-
authors:
|
12
|
+
authors:
|
7
13
|
- Patrick Tulskie
|
8
14
|
autorequire:
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
17
|
+
|
18
|
+
date: 2013-12-20 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
14
22
|
name: minitest
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
23
|
prerelease: false
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
27
35
|
description: DeepTree simplifies fetching deeply nested nodes in Ruby hashes.
|
28
|
-
email:
|
36
|
+
email:
|
29
37
|
- patricktulskie@gmail.com
|
30
38
|
executables: []
|
39
|
+
|
31
40
|
extensions: []
|
41
|
+
|
32
42
|
extra_rdoc_files: []
|
33
|
-
|
43
|
+
|
44
|
+
files:
|
34
45
|
- .gitignore
|
35
46
|
- Gemfile
|
36
47
|
- LICENSE.txt
|
@@ -47,31 +58,41 @@ files:
|
|
47
58
|
- spec/deep_tree_spec.rb
|
48
59
|
- spec/hash_spec.rb
|
49
60
|
- spec/spec_helper.rb
|
61
|
+
has_rdoc: true
|
50
62
|
homepage: https://github.com/patricktulskie/deep_tree
|
51
|
-
licenses:
|
63
|
+
licenses:
|
52
64
|
- MIT
|
53
|
-
metadata: {}
|
54
65
|
post_install_message:
|
55
66
|
rdoc_options: []
|
56
|
-
|
67
|
+
|
68
|
+
require_paths:
|
57
69
|
- lib
|
58
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 3
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
version: "0"
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
68
88
|
requirements: []
|
89
|
+
|
69
90
|
rubyforge_project:
|
70
|
-
rubygems_version:
|
91
|
+
rubygems_version: 1.5.3
|
71
92
|
signing_key:
|
72
|
-
specification_version:
|
93
|
+
specification_version: 3
|
73
94
|
summary: Aids with finding deeply nested nodes in Ruby hashes.
|
74
|
-
test_files:
|
95
|
+
test_files:
|
75
96
|
- spec/deep_tree_spec.rb
|
76
97
|
- spec/hash_spec.rb
|
77
98
|
- spec/spec_helper.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 7176f270d83663758388c7a28d8860aafed46d5d
|
4
|
-
data.tar.gz: 80f2c1c3aac9e9083709386ce59be1f0c8d0b4c6
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: eb14ad09f23558962316ea52cefa8ab3a06daafa91bd9590c709e78bf13d57a4058976a72413c650c00a50b93b4318cbad7498bc88c93bab85ad3812e4a5009e
|
7
|
-
data.tar.gz: 51e55799b41d4f25a6473efb242401fe5cc3d999f1593fc19a5351a22e658a193c6f56a051e403e20d290f99fdaba6bdc62077763e1fd228f8e4b12543e0025b
|