nested_access 0.0.1
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.
- checksums.yaml +15 -0
- data/lib/nested_access.rb +12 -0
- data/lib/nested_access/core_ext/array.rb +17 -0
- data/lib/nested_access/core_ext/hash.rb +19 -0
- metadata +45 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NGNhOTE4NTczMTc5OTFhNDY4NTMwZjMyM2RmMTYwNmQ0M2FhYTc2Yw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
Zjg3YmU1ZDc4NDc1OTEyOTk3ZTE1YmRmY2NjNDlmODI0NTA0YmU1OQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MmE3NDVhZDAxZjYyN2M1MmJlMWYyMDQ0OWVkY2UzNTViNmFhMzM4NzcwNGYz
|
10
|
+
MDIzNDYzNGEzNTg0YTM3ZDc3YmFiY2UzMTQ5Njg4NTFlOGMxNzUyOGFmZWZh
|
11
|
+
NzkzZGFmYzM0MjAzNDM4MTJmNjQ4YmYzZDNlNTgyOWIwNDEyYjA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NTc1MjFkMzNmNzQyODMyNThiNjNkNDcwYTQ4NWU1MWQ2YWE5ZjZkODY4M2Jj
|
14
|
+
NjE4MzYyMzk2Y2M2NDUxNmE3OGE1MjkzZjM0ODBmOWY2YWI0MWM1NDUxYTAy
|
15
|
+
YjQ2N2IzNjlkOTc1YjAxMjRlMTU2YTA0YzE2ZDc2NzFlY2I3YzI=
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class Array
|
2
|
+
|
3
|
+
def nested_map key_lambda=nil, value_lambda=nil, &blk
|
4
|
+
raise StandardError if block_given? and !(key_lambda.nil? and value_lambda.nil?)
|
5
|
+
value_lambda = blk if block_given?
|
6
|
+
inject([]) do |array, s|
|
7
|
+
case s
|
8
|
+
when Array, Hash
|
9
|
+
array << s.nested_map(key_lambda, value_lambda)
|
10
|
+
else
|
11
|
+
array << value_lambda.call(s)
|
12
|
+
end
|
13
|
+
array
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Hash
|
2
|
+
|
3
|
+
def nested_map key_lambda=nil, value_lambda=nil, &blk
|
4
|
+
raise StandardError if block_given? and !(key_lambda.nil? and value_lambda.nil?)
|
5
|
+
value_lambda = blk if block_given?
|
6
|
+
value_lambda = lambda { |s| s } if value_lambda.nil?
|
7
|
+
inject({}) do |hash, (key, value)|
|
8
|
+
new_key = key_lambda ? key_lambda.call(key) : key
|
9
|
+
hash[new_key] = case value
|
10
|
+
when Array, Hash
|
11
|
+
value.nested_map key_lambda, value_lambda
|
12
|
+
else
|
13
|
+
value_lambda.call value
|
14
|
+
end
|
15
|
+
hash
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nested_access
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Manohar Akula
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-02-19 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Provides iterator to iterate through nested elements of arrays and hashes.
|
14
|
+
email: manohar.akula@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/nested_access.rb
|
20
|
+
- lib/nested_access/core_ext/array.rb
|
21
|
+
- lib/nested_access/core_ext/hash.rb
|
22
|
+
homepage: http://github.com/akula1001/nested_access
|
23
|
+
licenses: []
|
24
|
+
metadata: {}
|
25
|
+
post_install_message:
|
26
|
+
rdoc_options: []
|
27
|
+
require_paths:
|
28
|
+
- lib
|
29
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubyforge_project:
|
41
|
+
rubygems_version: 2.1.7
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: Recursive operations on collections
|
45
|
+
test_files: []
|