nested_access 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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,12 @@
1
+ require 'logger'
2
+ require 'nested_access/core_ext/hash'
3
+ require 'nested_access/core_ext/array'
4
+
5
+ module NestedAccess
6
+
7
+ @logger = Logger.new STDOUT
8
+
9
+ def self.log
10
+ @logger
11
+ end
12
+ end
@@ -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: []