deep_slice 0.1.2 → 0.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6fcb10055bbec2a9b4ecac6411f1e17ab827f1f0
4
- data.tar.gz: 63153c046220f6033ea60b7029720398184c4a6b
3
+ metadata.gz: cc5a78a80c4607da90f6289caa34f475d311cd8f
4
+ data.tar.gz: 843bd4034fb21cbaacd1f6f7fa67c35ba6afa3f9
5
5
  SHA512:
6
- metadata.gz: e455bc7d56182a56c31d03f7b023df368dada03c6762a71e4154b40057b8cc07fd5bc428c4111de924ce3c0b348fea2cb8461a95dc59d8cecd65f82e9dbbd7f5
7
- data.tar.gz: 002b864aa2ddd8bb24194223a3c233525c48265ef85fd279768621bc2b967f2f00cbd2e9ecc530af26ee7942f15bbcd05a01a5aefa04ea6f40171680b108338b
6
+ metadata.gz: d6f6b9d0f107bcc09f347629f6d4c54b9b81ea920fdea753ff747990e8ac44dd7f4b094eca99c8ec039569e3c6654c67e31ad207951224382a5acc946d2f8db0
7
+ data.tar.gz: ea2c36890e9c79216cc3c5d13b66eb993cc564749558bcd98b6a33552d0559fafddd488ee123ed73cb21443f57f794e63c993a8dfa45e460e0a957b7852f9b4a
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.0.0-p576
1
+ 2.3.3
data/.travis.yml CHANGED
@@ -1,5 +1,7 @@
1
1
  language: ruby
2
+ before_install:
3
+ - gem install bundler
2
4
  rvm:
3
5
  - 1.8.7
4
6
  - 1.9.3
5
- - 2.1.5
7
+ - 2.3.3
data/deep_slice.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.name = 'deep_slice'
8
8
  spec.version = DeepSlice::VERSION
9
9
  spec.authors = ['John Iacona']
10
- spec.email = ['john.iacona@sermo.com']
10
+ spec.email = ['john.iacona@gmail.com']
11
11
  spec.summary = %q{Like `Hash.slice` from ActiveSupport, but allows for slicing nested keys.}
12
12
  spec.homepage = 'http://sermo.com'
13
13
 
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
17
  spec.require_paths = ['lib']
18
18
 
19
- spec.add_development_dependency 'rake', ' ~> 10.3'
20
- spec.add_development_dependency 'pry', '~> 0.9'
21
- spec.add_development_dependency 'rspec', '~> 2.14'
19
+ spec.add_development_dependency 'rake', ' ~> 12.2'
20
+ spec.add_development_dependency 'pry', '~> 0.11'
21
+ spec.add_development_dependency 'rspec', '~> 3.7'
22
22
  end
@@ -1,3 +1,3 @@
1
1
  module DeepSlice
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/lib/deep_slice.rb CHANGED
@@ -13,9 +13,11 @@ class Hash
13
13
  recursive_keys = key[sub_key]
14
14
  result[sub_key] = \
15
15
  if self[sub_key].is_a?(Array)
16
- self[sub_key].map { |val| val.deep_slice(*[recursive_keys].flatten) }
16
+ self[sub_key].map { |val|
17
+ val.deep_slice(*[recursive_keys].flatten) unless val.nil?
18
+ }
17
19
  else
18
- self[sub_key].deep_slice(*[recursive_keys].flatten)
20
+ self[sub_key].deep_slice(*[recursive_keys].flatten) unless self[sub_key].nil?
19
21
  end
20
22
  end
21
23
  end
@@ -12,7 +12,11 @@ describe Hash do
12
12
  {:j => 6, :k => 7},
13
13
  {:j => 8, :k => 9}
14
14
  ],
15
- :d => nil
15
+ :d => nil,
16
+ :level1 => {
17
+ :level2a => nil,
18
+ :level2b => [nil]
19
+ }
16
20
  }
17
21
  end
18
22
 
@@ -39,4 +43,12 @@ describe Hash do
39
43
  it 'slices values out of arrays' do
40
44
  expect(hash.deep_slice(:i => :j)).to eq({:i => [{:j => 6}, {:j => 8}]})
41
45
  end
46
+
47
+ it 'slices nested nil valued keys' do
48
+ expect(hash.deep_slice(:level1 => {:level2a => :level3})).to eq({:level1=>{:level2a=>nil}})
49
+ end
50
+
51
+ it 'slices nested nil array valued keys' do
52
+ expect(hash.deep_slice(:level1 => {:level2b => :level3})).to eq({:level1=>{:level2b=>[nil]}})
53
+ end
42
54
  end
metadata CHANGED
@@ -1,68 +1,68 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deep_slice
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Iacona
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-25 00:00:00.000000000 Z
11
+ date: 2017-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '10.3'
19
+ version: '12.2'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '10.3'
26
+ version: '12.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pry
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.9'
33
+ version: '0.11'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.9'
40
+ version: '0.11'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '2.14'
47
+ version: '3.7'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '2.14'
54
+ version: '3.7'
55
55
  description:
56
56
  email:
57
- - john.iacona@sermo.com
57
+ - john.iacona@gmail.com
58
58
  executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - .gitignore
63
- - .ruby-gemset
64
- - .ruby-version
65
- - .travis.yml
62
+ - ".gitignore"
63
+ - ".ruby-gemset"
64
+ - ".ruby-version"
65
+ - ".travis.yml"
66
66
  - Gemfile
67
67
  - LICENSE.txt
68
68
  - README.md
@@ -81,17 +81,17 @@ require_paths:
81
81
  - lib
82
82
  required_ruby_version: !ruby/object:Gem::Requirement
83
83
  requirements:
84
- - - '>='
84
+ - - ">="
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0'
87
87
  required_rubygems_version: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - '>='
89
+ - - ">="
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  requirements: []
93
93
  rubyforge_project:
94
- rubygems_version: 2.2.2
94
+ rubygems_version: 2.5.2
95
95
  signing_key:
96
96
  specification_version: 4
97
97
  summary: Like `Hash.slice` from ActiveSupport, but allows for slicing nested keys.