map 2.6.0 → 2.6.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/map.rb +22 -2
- data/map.gemspec +1 -1
- data/test/map_test.rb +14 -0
- metadata +4 -4
data/lib/map.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
class Map < Hash
|
2
|
-
Version = '2.6.
|
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
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:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 2.6.
|
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-
|
18
|
+
date: 2011-02-17 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|