hashr 0.0.20 → 0.0.21

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hashr (0.0.19)
4
+ hashr (0.0.20)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
@@ -1,7 +1,7 @@
1
1
  class Hash
2
2
  def slice(*keep_keys)
3
3
  h = {}
4
- keep_keys.each { |key| h[key] = fetch(key) }
4
+ keep_keys.each { |key| h[key] = fetch(key) if key?(key) }
5
5
  h
6
6
  end unless Hash.method_defined?(:slice)
7
7
 
@@ -1,3 +1,3 @@
1
1
  class Hashr < Hash
2
- VERSION = '0.0.20'
2
+ VERSION = '0.0.21'
3
3
  end
@@ -1,16 +1,28 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class CoreExtTest < Test::Unit::TestCase
4
- test 'deep_symbolize_keys walks arrays, too' do
4
+ test 'Hash#deep_symbolize_keys walks arrays, too' do
5
5
  hash = { 'foo' => [{ 'bar' => 'bar', 'baz' => { 'buz' => 'buz' } }] }
6
6
  expected = { :foo => [{ :bar => 'bar', :baz => { :buz => 'buz' } }] }
7
7
  assert_equal expected, hash.deep_symbolize_keys
8
8
  end
9
9
 
10
- test 'deep_symbolize_keys! replaces with deep_symbolize' do
10
+ test 'Hash#deep_symbolize_keys! replaces with deep_symbolize' do
11
11
  hash = { 'foo' => { 'bar' => 'baz' } }
12
12
  expected = { :foo => { :bar => 'baz' } }
13
13
  hash.deep_symbolize_keys!
14
14
  assert_equal expected, hash
15
15
  end
16
+
17
+ test 'Hash#slice returns a new hash containing the given keys' do
18
+ hash = { :foo => 'foo', :bar => 'bar', :baz => 'baz' }
19
+ expected = { :foo => 'foo', :bar => 'bar' }
20
+ assert_equal expected, hash.slice(:foo, :bar)
21
+ end
22
+
23
+ test 'Hash#slice does not explode on a missing key' do
24
+ hash = {}
25
+ expected = {}
26
+ assert_equal expected, hash.slice(:foo)
27
+ end
16
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hashr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.20
4
+ version: 0.0.21
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-05 00:00:00.000000000 Z
12
+ date: 2012-04-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70316954138920 !ruby/object:Gem::Requirement
16
+ requirement: &70105835843820 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70316954138920
24
+ version_requirements: *70105835843820
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: test_declarative
27
- requirement: &70316954138400 !ruby/object:Gem::Requirement
27
+ requirement: &70105835843180 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: 0.0.2
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70316954138400
35
+ version_requirements: *70105835843180
36
36
  description: Simple Hash extension to make working with nested hashes (e.g. for configuration)
37
37
  easier and less error-prone.
38
38
  email: svenfuchs@artweb-design.de