dot_hash 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,9 +7,9 @@ module DotHash
7
7
  @hash = hash
8
8
  end
9
9
 
10
- def method_missing(key)
10
+ def method_missing(key, *args, &block)
11
11
  symbolize_key key
12
- has_key?(key) ? get_value(key) : super
12
+ has_key?(key) ? get_value(key, *args, &block) : super
13
13
  end
14
14
 
15
15
  def respond_to?(key)
@@ -28,9 +28,9 @@ module DotHash
28
28
  hash.has_key?(key.to_sym) or hash.respond_to?(key)
29
29
  end
30
30
 
31
- def get_value(key)
31
+ def get_value(key, *args, &block)
32
32
  key = key.to_sym
33
- value = hash.fetch(key) { hash.send(key) }
33
+ value = hash.fetch(key) { hash.send(key, *args, &block) }
34
34
  return value unless value.is_a?(Hash)
35
35
  hash[key] = self.class.new value
36
36
  end
@@ -6,8 +6,8 @@ module DotHash
6
6
  @configs = Properties.new(configs)
7
7
  end
8
8
 
9
- def method_missing(*args)
10
- configs.send(*args)
9
+ def method_missing(key, *args, &block)
10
+ configs.send(key, *args, &block)
11
11
  end
12
12
 
13
13
  def respond_to?(key)
@@ -1,3 +1,3 @@
1
1
  module DotHash
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.5"
3
3
  end
@@ -25,6 +25,12 @@ module DotHash
25
25
  it "gets all values from a given property" do
26
26
  properties.values.must_equal ["15", 100]
27
27
  end
28
+
29
+ it "responds to a block method" do
30
+ properties.map do |key, value|
31
+ [key, value]
32
+ end.must_equal [[:speed, "15"], ["power", 100]]
33
+ end
28
34
  end
29
35
 
30
36
  describe "with a nested hash" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dot_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -66,7 +66,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
66
66
  version: '0'
67
67
  segments:
68
68
  - 0
69
- hash: 899670426166528458
69
+ hash: 4595175337446195282
70
70
  required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  none: false
72
72
  requirements:
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  version: '0'
76
76
  segments:
77
77
  - 0
78
- hash: 899670426166528458
78
+ hash: 4595175337446195282
79
79
  requirements: []
80
80
  rubyforge_project:
81
81
  rubygems_version: 1.8.24