map-rec 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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/lib/map-rec.rb +1 -0
  3. data/lib/map-rec/map_rec.rb +16 -0
  4. metadata +45 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3248329e45fa2a31e9e4a41c74af322a6adda3d9
4
+ data.tar.gz: 44f05312627b91c0c795af97453b52d01fce7e9d
5
+ SHA512:
6
+ metadata.gz: 0820a180228fcb65258177fe97e056cf2ccf8206a9b13ec596e0f6f8b34234188d5cfe2e775c2d955a4ebd4f2225046518245914758503c5931120bef80b34c6
7
+ data.tar.gz: 4485f02cec4cfa381631ca16bab8a6453975d011e6451a339c37025358af0e03fe44e278ea8e5b6f3bfa1d72d77c58e40b2d6113991d6cf171698e6f90842691
@@ -0,0 +1 @@
1
+ require_relative 'map-rec/map_rec'
@@ -0,0 +1,16 @@
1
+ def map_rec(object, array_elem: true, hash_key: true, hash_value: true, &block)
2
+ map = lambda { |o| map_rec(o, &block) }
3
+
4
+ case object
5
+ when Array
6
+ object.map do |elem|
7
+ array_elem ? map.call(elem) : elem
8
+ end
9
+ when Hash
10
+ object.map do |key, value|
11
+ [(hash_key ? map.call(key) : key), (hash_value ? map.call(value) : value)]
12
+ end.to_h
13
+ else
14
+ block.call object
15
+ end
16
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: map-rec
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Yota Toyama
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-10-29 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Recursive map for Hash and Array
14
+ email: raviqqe@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/map-rec.rb
20
+ - lib/map-rec/map_rec.rb
21
+ homepage: https://github.com/raviqqe/map-rec.rb
22
+ licenses:
23
+ - Unlicense
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.5.1
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: Recursive map
45
+ test_files: []