deepmap 0.2.4 → 1.0.0
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 +4 -4
- data/lib/deepmap/deepmap.rb +28 -23
- data/lib/deepmap/version.rb +5 -0
- data/readme.md +4 -3
- metadata +16 -30
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e83602369521a1799962c9cba500b4f4a5c0d16a16555a7738c5de3687c5b7c5
|
|
4
|
+
data.tar.gz: a58bdf656de275c1957c6e9a42fbc4399f1480e84129f112c1cb554f8a407823
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4f6c34154cef76baca26ae3bd24bda7badc8063e865ac190bba8340c42757914dffc2aec4bd78b84132910a466131854641101576bfba8d08a648f7f474519ae
|
|
7
|
+
data.tar.gz: 91b53fcda525ab6e2cc6915de7964471d6a16e8b1e0c6b3a9a46ce57dc7ec82daeb731a19ea42b4e8517dbf21dd7f7e41bfe66a4e0eb29a04470663572556318
|
data/lib/deepmap/deepmap.rb
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
#
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# Creating deep_map, key_map, val_map methods in DeepMap.
|
|
3
4
|
module DeepMap
|
|
4
|
-
def deep_map
|
|
5
|
-
return self
|
|
6
|
-
|
|
5
|
+
def deep_map(&)
|
|
6
|
+
return self unless block_given?
|
|
7
|
+
|
|
8
|
+
recurse(&)
|
|
7
9
|
end
|
|
8
10
|
|
|
9
|
-
def key_map
|
|
10
|
-
return self
|
|
11
|
-
|
|
11
|
+
def key_map(&)
|
|
12
|
+
return self unless block_given?
|
|
13
|
+
|
|
14
|
+
recurse('key', &)
|
|
12
15
|
end
|
|
13
16
|
|
|
14
|
-
def val_map
|
|
15
|
-
return self
|
|
16
|
-
|
|
17
|
+
def val_map(&)
|
|
18
|
+
return self unless block_given?
|
|
19
|
+
|
|
20
|
+
recurse('val', &)
|
|
17
21
|
end
|
|
18
22
|
|
|
19
23
|
private
|
|
@@ -26,30 +30,31 @@ module DeepMap
|
|
|
26
30
|
# array. If it is niether a hash or an array, then apply the block to that
|
|
27
31
|
# item, and return the result.
|
|
28
32
|
|
|
29
|
-
def recurse(t =
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
def recurse(t = 'both', h = self, &block)
|
|
34
|
+
case h
|
|
35
|
+
when Hash
|
|
36
|
+
hash_collect(t, h, &block)
|
|
32
37
|
|
|
33
|
-
|
|
34
|
-
h.map { |v| recurse(t, v)
|
|
38
|
+
when Array
|
|
39
|
+
h.map { |v| recurse(t, v, &block) }
|
|
35
40
|
|
|
36
41
|
else # apply to value
|
|
37
|
-
t ==
|
|
42
|
+
t == 'key' ? h : yield(h)
|
|
38
43
|
|
|
39
44
|
end
|
|
40
45
|
end
|
|
41
46
|
|
|
42
|
-
def hash_collect(t, h)
|
|
43
|
-
|
|
47
|
+
def hash_collect(t, h, &block)
|
|
48
|
+
h.to_h do |k, v|
|
|
44
49
|
case t # type
|
|
45
|
-
when
|
|
46
|
-
[yield(k), recurse(t, v)
|
|
50
|
+
when 'both', 'key'
|
|
51
|
+
[yield(k), recurse(t, v, &block)]
|
|
47
52
|
|
|
48
|
-
when
|
|
49
|
-
[k, recurse(t, v)
|
|
53
|
+
when 'val'
|
|
54
|
+
[k, recurse(t, v, &block)]
|
|
50
55
|
|
|
51
56
|
end
|
|
52
|
-
|
|
57
|
+
end
|
|
53
58
|
end
|
|
54
59
|
end
|
|
55
60
|
|
data/readme.md
CHANGED
|
@@ -72,11 +72,12 @@ try running `gem install bundler`. Once that is done:
|
|
|
72
72
|
Now, we should be able to build the gem locally. This will build the local
|
|
73
73
|
deepmap gem and link it in your path, so you can playing around with `deepmap`.
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
just build
|
|
76
76
|
|
|
77
|
-
This uses `rspec` and `
|
|
77
|
+
This uses `rspec`, `rubocop`, and `simplecov` to run and check a suite of unit
|
|
78
|
+
tests. To run the full suite:
|
|
78
79
|
|
|
79
|
-
|
|
80
|
+
just ci
|
|
80
81
|
|
|
81
82
|
## todo
|
|
82
83
|
|
metadata
CHANGED
|
@@ -1,75 +1,62 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: deepmap
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jeremy Warner
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
13
|
+
name: colored
|
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
|
16
15
|
requirements:
|
|
17
16
|
- - "~>"
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
20
|
-
- - ">="
|
|
21
|
-
- !ruby/object:Gem::Version
|
|
22
|
-
version: 3.8.0
|
|
18
|
+
version: '1.2'
|
|
23
19
|
type: :development
|
|
24
20
|
prerelease: false
|
|
25
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
22
|
requirements:
|
|
27
23
|
- - "~>"
|
|
28
24
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '
|
|
30
|
-
- - ">="
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: 3.8.0
|
|
25
|
+
version: '1.2'
|
|
33
26
|
- !ruby/object:Gem::Dependency
|
|
34
|
-
name:
|
|
27
|
+
name: rspec
|
|
35
28
|
requirement: !ruby/object:Gem::Requirement
|
|
36
29
|
requirements:
|
|
37
30
|
- - "~>"
|
|
38
31
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
32
|
+
version: '3.8'
|
|
40
33
|
- - ">="
|
|
41
34
|
- !ruby/object:Gem::Version
|
|
42
|
-
version:
|
|
35
|
+
version: 3.8.0
|
|
43
36
|
type: :development
|
|
44
37
|
prerelease: false
|
|
45
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
46
39
|
requirements:
|
|
47
40
|
- - "~>"
|
|
48
41
|
- !ruby/object:Gem::Version
|
|
49
|
-
version: '
|
|
42
|
+
version: '3.8'
|
|
50
43
|
- - ">="
|
|
51
44
|
- !ruby/object:Gem::Version
|
|
52
|
-
version:
|
|
45
|
+
version: 3.8.0
|
|
53
46
|
- !ruby/object:Gem::Dependency
|
|
54
|
-
name:
|
|
47
|
+
name: simplecov
|
|
55
48
|
requirement: !ruby/object:Gem::Requirement
|
|
56
49
|
requirements:
|
|
57
50
|
- - "~>"
|
|
58
51
|
- !ruby/object:Gem::Version
|
|
59
|
-
version:
|
|
60
|
-
- - ">="
|
|
61
|
-
- !ruby/object:Gem::Version
|
|
62
|
-
version: 0.15.1
|
|
52
|
+
version: 0.22.0
|
|
63
53
|
type: :development
|
|
64
54
|
prerelease: false
|
|
65
55
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
56
|
requirements:
|
|
67
57
|
- - "~>"
|
|
68
58
|
- !ruby/object:Gem::Version
|
|
69
|
-
version:
|
|
70
|
-
- - ">="
|
|
71
|
-
- !ruby/object:Gem::Version
|
|
72
|
-
version: 0.15.1
|
|
59
|
+
version: 0.22.0
|
|
73
60
|
description: Map functions over nested hash/arrays objects (e.g., YAML, JSON).
|
|
74
61
|
email: jeremywrnr@gmail.com
|
|
75
62
|
executables: []
|
|
@@ -77,12 +64,12 @@ extensions: []
|
|
|
77
64
|
extra_rdoc_files: []
|
|
78
65
|
files:
|
|
79
66
|
- lib/deepmap/deepmap.rb
|
|
67
|
+
- lib/deepmap/version.rb
|
|
80
68
|
- readme.md
|
|
81
69
|
homepage: http://github.com/jeremywrnr/deepmap
|
|
82
70
|
licenses:
|
|
83
71
|
- MIT
|
|
84
72
|
metadata: {}
|
|
85
|
-
post_install_message:
|
|
86
73
|
rdoc_options: []
|
|
87
74
|
require_paths:
|
|
88
75
|
- lib/deepmap
|
|
@@ -90,15 +77,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
90
77
|
requirements:
|
|
91
78
|
- - ">="
|
|
92
79
|
- !ruby/object:Gem::Version
|
|
93
|
-
version: '0'
|
|
80
|
+
version: '3.0'
|
|
94
81
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
82
|
requirements:
|
|
96
83
|
- - ">="
|
|
97
84
|
- !ruby/object:Gem::Version
|
|
98
85
|
version: '0'
|
|
99
86
|
requirements: []
|
|
100
|
-
rubygems_version:
|
|
101
|
-
signing_key:
|
|
87
|
+
rubygems_version: 4.0.10
|
|
102
88
|
specification_version: 4
|
|
103
89
|
summary: Nested hash/array function mapping.
|
|
104
90
|
test_files: []
|