map 2.6.0 → 2.6.1

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.
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