numeric_hash 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  class NumericHash < Hash
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/numeric_hash.rb CHANGED
@@ -172,13 +172,25 @@ class NumericHash < Hash
172
172
  [:to_f, :to_i, :to_int].each do |convert_method|
173
173
  define_method("map_#{convert_method}".to_sym) { map_values(&convert_method) }
174
174
  end
175
-
175
+
176
+ # Maps each numeric value using the specified block.
177
+ #
178
+ # @hash # => { :a => 1, :b => { :c => 2, :d => 3 } }
179
+ # @hash.map_numeric { |value| "X" * value } # => { :a => "X", :b => { :c => "XX", :d => "XXX" } }
180
+ # @hash.collect_numeric(&:to_s) # => { :a => "1", :b => { :c => "2", :d => "3" } }
181
+ #
182
+ def collect_numeric(&block)
183
+ map_to_hash do |key, value|
184
+ [key, value.is_a?(NumericHash) ? value.collect_numeric(&block) : yield(value)]
185
+ end
186
+ end
187
+ alias_method :map_numeric, :collect_numeric
188
+
176
189
  # Converts the NumericHash into a regular Hash.
177
190
  #
178
191
  def to_hash
179
- inject({}) do |hash, (key, value)|
180
- hash[key] = value.is_a?(NumericHash) ? value.to_hash : value
181
- hash
192
+ map_to_hash do |key, value|
193
+ [key, value.is_a?(NumericHash) ? value.to_hash : value]
182
194
  end
183
195
  end
184
196
 
data/numeric_hash.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
  s.description = %q{Defines a hash whose values are Numeric or additional nested NumericHashes.}
13
13
  s.license = 'MIT'
14
14
 
15
- s.add_dependency('enumerate_hash_values')
15
+ s.add_dependency('enumerate_hash_values', '>= 0.2.0')
16
16
 
17
17
  s.rubyforge_project = "numeric_hash"
18
18
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numeric_hash
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
8
+ - 3
9
9
  - 0
10
- version: 0.2.0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Clyde Law
@@ -26,10 +26,12 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- hash: 3
29
+ hash: 23
30
30
  segments:
31
31
  - 0
32
- version: "0"
32
+ - 2
33
+ - 0
34
+ version: 0.2.0
33
35
  type: :runtime
34
36
  version_requirements: *id001
35
37
  description: Defines a hash whose values are Numeric or additional nested NumericHashes.