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