map 2.6.0 → 2.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/lib/map.rb +22 -2
  2. data/map.gemspec +1 -1
  3. data/test/map_test.rb +14 -0
  4. metadata +4 -4
data/lib/map.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  class Map < Hash
2
- Version = '2.6.0' unless defined?(Version)
2
+ Version = '2.6.1' unless defined?(Version)
3
3
  Load = Kernel.method(:load) unless defined?(Load)
4
4
 
5
5
  class << Map
@@ -272,7 +272,7 @@ class Map < Hash
272
272
  self.default = default
273
273
  end
274
274
 
275
- Dup = instance_method(:dup)
275
+ Dup = instance_method(:dup) unless defined?(Dup)
276
276
 
277
277
  def dup
278
278
  copy
@@ -606,6 +606,26 @@ class Map < Hash
606
606
  collection_has_key?(collection, alphanumeric_key_for(key))
607
607
  end
608
608
 
609
+ def blank?(*keys)
610
+ return empty? if keys.empty?
611
+ !has?(*keys) or Map.blank?(get(*keys))
612
+ end
613
+
614
+ def Map.blank?(value)
615
+ return value.blank? if value.respond_to?(:blank?)
616
+
617
+ case value
618
+ when String
619
+ value.strip.empty?
620
+ when Numeric
621
+ value == 0
622
+ when false
623
+ true
624
+ else
625
+ value.respond_to?(:empty?) ? value.empty? : !value
626
+ end
627
+ end
628
+
609
629
  def collection_has_key?(collection, key)
610
630
  case collection
611
631
  when Hash
data/map.gemspec CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Gem::Specification::new do |spec|
5
5
  spec.name = "map"
6
- spec.version = "2.6.0"
6
+ spec.version = "2.6.1"
7
7
  spec.platform = Gem::Platform::RUBY
8
8
  spec.summary = "map"
9
9
  spec.description = "description: map kicks the ass"
data/test/map_test.rb CHANGED
@@ -386,6 +386,20 @@ Testing Map do
386
386
  end
387
387
  end
388
388
 
389
+ testing 'that maps have a blank? method that is sane' do
390
+ m = Map.new(:a => 0, :b => ' ', :c => '', :d => {}, :e => [], :f => false)
391
+ m.each do |key, val|
392
+ assert{ m.blank?(key) }
393
+ end
394
+
395
+ m = Map.new(:a => 1, :b => '_', :d => {:k=>:v}, :e => [42], :f => true)
396
+ m.each do |key, val|
397
+ assert{ !m.blank?(key) }
398
+ end
399
+
400
+ assert{ Map.new.blank? }
401
+ end
402
+
389
403
  protected
390
404
  def new_int_map(n = 1024)
391
405
  map = assert{ Map.new }
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: map
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 6
9
- - 0
10
- version: 2.6.0
9
+ - 1
10
+ version: 2.6.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ara T. Howard
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-16 00:00:00 -07:00
18
+ date: 2011-02-17 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies: []
21
21