sarah 2.1.0 → 2.2.0
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/HISTORY.txt +4 -0
- data/lib/sarah.rb +9 -7
- data/sarah.gemspec +2 -2
- data/test/16v220.rb +31 -0
- metadata +5 -3
data/HISTORY.txt
CHANGED
data/lib/sarah.rb
CHANGED
@@ -60,11 +60,11 @@
|
|
60
60
|
# @author Brian Katzung (briank@kappacs.com), Kappa Computer Solutions, LLC
|
61
61
|
# @copyright 2013-2014 Brian Katzung and Kappa Computer Solutions, LLC
|
62
62
|
# @license MIT License
|
63
|
-
# @version 2.
|
63
|
+
# @version 2.2.0
|
64
64
|
|
65
65
|
class Sarah
|
66
66
|
|
67
|
-
VERSION = "2.
|
67
|
+
VERSION = "2.2.0"
|
68
68
|
|
69
69
|
# Private attributes:
|
70
70
|
# seq [Array] An array of (zero-origin) sequential values.
|
@@ -550,17 +550,17 @@ class Sarah
|
|
550
550
|
#
|
551
551
|
# (#each_key alias since 2.0.0)
|
552
552
|
#
|
553
|
-
# @param which [:all|:ary|:rnd|:seq|:spr] The data structures over
|
554
|
-
# which to iterate. (Since 2.0.0)
|
553
|
+
# @param which [:all|:ary|:nsq|:rnd|:seq|:spr] The data structures over
|
554
|
+
# which to iterate. (Since 2.0.0; :nsq since 2.2.0)
|
555
555
|
# @return [Sarah]
|
556
556
|
def each (which = :all)
|
557
557
|
case which when :all, :ary, :seq
|
558
558
|
@seq.each_index { |i| yield i, @seq[i] }
|
559
559
|
end
|
560
|
-
case which when :all, :ary, :spr
|
560
|
+
case which when :all, :ary, :nsq, :spr
|
561
561
|
@spr.keys.sort.each { |i| yield i, @spr[i] }
|
562
562
|
end
|
563
|
-
case which when :all, :rnd
|
563
|
+
case which when :all, :nsq, :rnd
|
564
564
|
@rnd.each { |key, value| yield key, value }
|
565
565
|
end
|
566
566
|
self
|
@@ -574,13 +574,15 @@ class Sarah
|
|
574
574
|
|
575
575
|
# Is the array (or are parts of it) empty?
|
576
576
|
#
|
577
|
-
# @param which [:all|:ary|:rnd|:seq|:spr]
|
577
|
+
# @param which [:all|:ary|:nsq|:rnd|:seq|:spr] Which data structures to
|
578
|
+
# check. (:nsq since 2.2.0)
|
578
579
|
# @return [Boolean]
|
579
580
|
# @since 2.0.0
|
580
581
|
def empty? (which = :all)
|
581
582
|
case which
|
582
583
|
when :all then @seq.empty? && @spr.empty? && @rnd.empty?
|
583
584
|
when :ary then @seq.empty? && @spr.empty?
|
585
|
+
when :nsq then @spr.empty? && @rnd.empty?
|
584
586
|
when :rnd then @rnd.empty?
|
585
587
|
when :seq then @seq.empty?
|
586
588
|
when :spr then @spr.empty?
|
data/sarah.gemspec
CHANGED
data/test/16v220.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'sarah'
|
3
|
+
|
4
|
+
# Test changes for version 2.2.0:
|
5
|
+
# :nsq for #each and #empty?
|
6
|
+
|
7
|
+
class TestSarah_16 < MiniTest::Unit::TestCase
|
8
|
+
|
9
|
+
def test_each
|
10
|
+
s = Sarah[1, 2, 5 => 'five', :a => ?a]
|
11
|
+
my_h = {}
|
12
|
+
s.each(:nsq) { |k, v| my_h[k] = v }
|
13
|
+
assert_equal s.to_h(:nsq), my_h, 'each :nsq matches to_h :nsq'
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_empty
|
17
|
+
s0 = Sarah[1, 2, 5 => 'five', :a => ?a]
|
18
|
+
s = Sarah.new s0
|
19
|
+
assert_equal false, s.empty?(:nsq), 'not empty? :nsq'
|
20
|
+
s.delete_at 5
|
21
|
+
assert_equal false, s.empty?(:nsq), 'not empty? :nsq after delete 5'
|
22
|
+
s = Sarah.new s0
|
23
|
+
s.delete_at :a
|
24
|
+
assert_equal false, s.empty?(:nsq), 'not empty? :nsq after delete a'
|
25
|
+
s.delete_at 5
|
26
|
+
assert_equal true, s.empty?(:nsq), 'empty? :nsq after delete 5 and a'
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
# END
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 2
|
7
|
-
-
|
7
|
+
- 2
|
8
8
|
- 0
|
9
|
-
version: 2.
|
9
|
+
version: 2.2.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Brian Katzung
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2014-04-
|
17
|
+
date: 2014-04-11 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -58,6 +58,7 @@ files:
|
|
58
58
|
- test/14slice.rb
|
59
59
|
- test/01instance.rb
|
60
60
|
- test/12search.rb
|
61
|
+
- test/16v220.rb
|
61
62
|
- test/07inst_attr.rb
|
62
63
|
- test/03set_get.rb
|
63
64
|
- test/11each.rb
|
@@ -107,6 +108,7 @@ test_files:
|
|
107
108
|
- test/14slice.rb
|
108
109
|
- test/01instance.rb
|
109
110
|
- test/12search.rb
|
111
|
+
- test/16v220.rb
|
110
112
|
- test/07inst_attr.rb
|
111
113
|
- test/03set_get.rb
|
112
114
|
- test/11each.rb
|