xqsr3 0.18.1 → 0.19.3
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.
- checksums.yaml +4 -4
- data/lib/xqsr3/extensions/test/unit/assert_eql.rb +1 -0
- data/lib/xqsr3/extensions/test/unit/assert_not.rb +1 -0
- data/lib/xqsr3/extensions/test/unit/assert_not_eql.rb +1 -0
- data/lib/xqsr3/extensions/test/unit/assert_subclass_of.rb +21 -0
- data/lib/xqsr3/extensions/test/unit/assert_superclass_of.rb +21 -0
- data/lib/xqsr3/extensions/test/unit/assert_true.rb +0 -1
- data/lib/xqsr3/extensions/test/unit.rb +2 -0
- data/lib/xqsr3/quality/parameter_checking.rb +88 -50
- data/lib/xqsr3/version.rb +2 -2
- data/test/unit/extensions/test/ts_all.rb +12 -0
- data/test/unit/extensions/test/unit/tc_assert_subclass_of.rb +24 -0
- data/test/unit/extensions/test/unit/tc_assert_superclass_of.rb +24 -0
- data/test/unit/extensions/test/unit/ts_all.rb +12 -0
- data/test/unit/quality/tc_parameter_checking.rb +111 -0
- metadata +8 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 77b11de6b0e214ce904216d2d6c1818e4d72e3cd
|
|
4
|
+
data.tar.gz: c383a8ddaab643a4d487d0fe44f37e794ae81217
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 64e58c0bd8362c0971340a33cf2442f3eb78f0fbe81b76e04df28ea06c2bd738383238528251f0015810c0f6586b850731b4ba62b03ac943574e627299c8cd9d
|
|
7
|
+
data.tar.gz: 7ebf55437cd838b30620d950bf0f02c202c759022ab400ea046006b138ee95816ae3527cebd00bd881948b5be0df48af5f23adceff1df08e7df66b069f105b88
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
module Test
|
|
3
|
+
module Unit
|
|
4
|
+
|
|
5
|
+
module Assertions
|
|
6
|
+
|
|
7
|
+
unless respond_to? :assert_subclass_of
|
|
8
|
+
|
|
9
|
+
def assert_subclass_of(parent_class, tested_class, failure_message = nil)
|
|
10
|
+
|
|
11
|
+
failure_message ||= "#{tested_class} is not a subclass of #{parent_class}"
|
|
12
|
+
|
|
13
|
+
assert (tested_class < parent_class), failure_message
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end # class Assertions
|
|
18
|
+
end # module Unit
|
|
19
|
+
end # module Test
|
|
20
|
+
|
|
21
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
module Test
|
|
3
|
+
module Unit
|
|
4
|
+
|
|
5
|
+
module Assertions
|
|
6
|
+
|
|
7
|
+
unless respond_to? :assert_superclass_of
|
|
8
|
+
|
|
9
|
+
def assert_superclass_of(child_class, tested_class, failure_message = nil)
|
|
10
|
+
|
|
11
|
+
failure_message ||= "#{tested_class} is not a superclass of #{child_class}"
|
|
12
|
+
|
|
13
|
+
assert (child_class < tested_class), failure_message
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end # class Assertions
|
|
18
|
+
end # module Unit
|
|
19
|
+
end # module Test
|
|
20
|
+
|
|
21
|
+
|
|
@@ -3,5 +3,7 @@ require 'xqsr3/extensions/test/unit/assert_eql'
|
|
|
3
3
|
require 'xqsr3/extensions/test/unit/assert_false'
|
|
4
4
|
require 'xqsr3/extensions/test/unit/assert_not'
|
|
5
5
|
require 'xqsr3/extensions/test/unit/assert_not_eql'
|
|
6
|
+
require 'xqsr3/extensions/test/unit/assert_subclass_of'
|
|
7
|
+
require 'xqsr3/extensions/test/unit/assert_superclass_of'
|
|
6
8
|
require 'xqsr3/extensions/test/unit/assert_true'
|
|
7
9
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# Purpose: Definition of the ParameterChecking module
|
|
6
6
|
#
|
|
7
7
|
# Created: 12th February 2015
|
|
8
|
-
# Updated:
|
|
8
|
+
# Updated: 21st December 2017
|
|
9
9
|
#
|
|
10
10
|
# Home: http://github.com/synesissoftware/xqsr3
|
|
11
11
|
#
|
|
@@ -53,7 +53,8 @@
|
|
|
53
53
|
module Xqsr3
|
|
54
54
|
module Quality
|
|
55
55
|
|
|
56
|
-
#
|
|
56
|
+
# Inclusion module that creates class and instance methods +check_parameter+
|
|
57
|
+
# that may be used to check parameter values and types
|
|
57
58
|
#
|
|
58
59
|
module ParameterChecking
|
|
59
60
|
|
|
@@ -64,10 +65,13 @@ module ParameterChecking
|
|
|
64
65
|
|
|
65
66
|
case a.size
|
|
66
67
|
when 1
|
|
68
|
+
|
|
67
69
|
a[0]
|
|
68
70
|
when 2
|
|
71
|
+
|
|
69
72
|
"#{a[0]} or #{a[1]}"
|
|
70
73
|
else
|
|
74
|
+
|
|
71
75
|
"#{a[0...-1].join(', ')}, or #{a[-1]}"
|
|
72
76
|
end
|
|
73
77
|
end
|
|
@@ -79,36 +83,40 @@ module ParameterChecking
|
|
|
79
83
|
base.extend self
|
|
80
84
|
end
|
|
81
85
|
|
|
86
|
+
private
|
|
82
87
|
# Check a given parameter (value=+value+, name=+name+) for type and value
|
|
83
88
|
#
|
|
84
89
|
# @param +value+ the parameter whose value and type is to be checked
|
|
85
|
-
# @param +name+ the name of the parameter to be
|
|
86
|
-
#
|
|
90
|
+
# @param +name+ [::String, ::Symbol] the name of the parameter to be
|
|
91
|
+
# checked
|
|
92
|
+
# @param +options+ [::Hash] options that moderate the behaviour
|
|
87
93
|
#
|
|
88
|
-
# @option +:allow_nil+
|
|
89
|
-
# is true
|
|
90
|
-
# @option +:
|
|
91
|
-
#
|
|
92
|
-
#
|
|
93
|
-
#
|
|
94
|
-
#
|
|
95
|
-
#
|
|
96
|
-
#
|
|
97
|
-
# @option +:
|
|
98
|
-
#
|
|
99
|
-
# @option +:
|
|
94
|
+
# @option +:allow_nil+ [boolean] The +value+ must not be +nil+ unless
|
|
95
|
+
# this option is true
|
|
96
|
+
# @option +:nil+ an alias for +:allow_nil+
|
|
97
|
+
# @option +:types+ [::Array] An array of types one of which +value+ must
|
|
98
|
+
# be (or must be derived from). One of these types may be an
|
|
99
|
+
# array of types, in which case +value+ may be an array that
|
|
100
|
+
# must consist wholly of those types
|
|
101
|
+
# @option +:type+ [::Class] A single type parameter, used only if
|
|
102
|
+
# +:types+ is not specified
|
|
103
|
+
# @option +:values+ [::Array] an array of values one of which +value+
|
|
104
|
+
# must be
|
|
105
|
+
# @option +:responds_to+ [::Array] An array of symbols specifying all
|
|
106
|
+
# messages to which the parameter will respond
|
|
107
|
+
# @option +:reject_empty+ [boolean] requires value to respond to +empty?+
|
|
100
108
|
# message and to do so with false, unless +nil+
|
|
101
|
-
# @option +:require_empty+ requires value to respond to
|
|
102
|
-
# message and to do so with true, unless +nil+
|
|
103
|
-
# @option +:nothrow+ causes failure to be indicated by a +nil+
|
|
104
|
-
# rather than a thrown exception
|
|
105
|
-
# @option +:message+ specifies a message to be used in any
|
|
106
|
-
# exception, which suppresses internal message
|
|
107
|
-
#
|
|
108
|
-
#
|
|
109
|
+
# @option +:require_empty+ [boolean] requires value to respond to
|
|
110
|
+
# +empty?+ message and to do so with true, unless +nil+
|
|
111
|
+
# @option +:nothrow+ [boolean] causes failure to be indicated by a +nil+
|
|
112
|
+
# return rather than a thrown exception
|
|
113
|
+
# @option +:message+ [::String] specifies a message to be used in any
|
|
114
|
+
# thrown exception, which suppresses internal message
|
|
115
|
+
# preparation
|
|
116
|
+
# @option +:treat_as_option+ [boolean] If true, the value will be
|
|
117
|
+
# treated as an option when reporting check failure
|
|
109
118
|
#
|
|
110
119
|
# This method is private, because it should only be used within methods
|
|
111
|
-
private
|
|
112
120
|
def check_parameter value, name, options = {}, &block
|
|
113
121
|
|
|
114
122
|
Util_.check_parameter value, name, options, &block
|
|
@@ -118,40 +126,61 @@ module ParameterChecking
|
|
|
118
126
|
#
|
|
119
127
|
# @note This is obsolete, and will be removed in a future version.
|
|
120
128
|
# Please use +check_parameter+ instead
|
|
121
|
-
private
|
|
122
129
|
def check_param value, name, options = {}, &block
|
|
123
130
|
|
|
124
131
|
Util_.check_parameter value, name, options, &block
|
|
125
132
|
end
|
|
126
133
|
|
|
134
|
+
# Specific form of the +check_parameter()+ that is used to check
|
|
135
|
+
# options, taking instead the hash and the key
|
|
136
|
+
#
|
|
137
|
+
# @param +h+ [::Hash] The options hash from which the named element is
|
|
138
|
+
# to be tested. May not be +nil+
|
|
139
|
+
# @param +name+ [::String, ::Symbol] The options key name. May not be
|
|
140
|
+
# +nil+
|
|
141
|
+
# @param +options+ [::Hash] options that moderate the behaviour in the
|
|
142
|
+
# same way as for +check_parameter()+ except that the
|
|
143
|
+
# +:treat_as_option+ option (with the value +true+) is merged in
|
|
144
|
+
# before calling +check_parameter()+
|
|
145
|
+
#
|
|
146
|
+
#
|
|
147
|
+
def check_option h, name, options = {}, &block
|
|
148
|
+
|
|
149
|
+
Util_.check_parameter h[name], name, options.merge({ treat_as_option: true }), &block
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
public
|
|
127
153
|
# Check a given parameter (value=+value+, name=+name+) for type and value
|
|
128
154
|
#
|
|
129
155
|
# @param +value+ the parameter whose value and type is to be checked
|
|
130
156
|
# @param +name+ the name of the parameter to be checked
|
|
131
157
|
# @param +options+ options
|
|
132
158
|
#
|
|
133
|
-
# @option +:allow_nil+
|
|
134
|
-
# is true
|
|
135
|
-
# @option +:
|
|
136
|
-
#
|
|
137
|
-
#
|
|
138
|
-
#
|
|
139
|
-
#
|
|
140
|
-
#
|
|
141
|
-
#
|
|
142
|
-
# @option +:
|
|
143
|
-
#
|
|
144
|
-
# @option +:
|
|
159
|
+
# @option +:allow_nil+ [boolean] The +value+ must not be +nil+ unless
|
|
160
|
+
# this option is true
|
|
161
|
+
# @option +:nil+ an alias for +:allow_nil+
|
|
162
|
+
# @option +:types+ [::Array] An array of types one of which +value+ must
|
|
163
|
+
# be (or must be derived from). One of these types may be an
|
|
164
|
+
# array of types, in which case +value+ may be an array that
|
|
165
|
+
# must consist wholly of those types
|
|
166
|
+
# @option +:type+ [::Class] A single type parameter, used only if
|
|
167
|
+
# +:types+ is not specified
|
|
168
|
+
# @option +:values+ [::Array] an array of values one of which +value+
|
|
169
|
+
# must be
|
|
170
|
+
# @option +:responds_to+ [::Array] An array of symbols specifying all
|
|
171
|
+
# messages to which the parameter will respond
|
|
172
|
+
# @option +:reject_empty+ [boolean] requires value to respond to +empty?+
|
|
145
173
|
# message and to do so with false, unless +nil+
|
|
146
|
-
# @option +:require_empty+ requires value to respond to
|
|
147
|
-
# message and to do so with true, unless +nil+
|
|
148
|
-
# @option +:nothrow+ causes failure to be indicated by a +nil+
|
|
149
|
-
# rather than a thrown exception
|
|
150
|
-
# @option +:message+ specifies a message to be used in any
|
|
151
|
-
# exception, which suppresses internal message
|
|
152
|
-
#
|
|
153
|
-
#
|
|
154
|
-
|
|
174
|
+
# @option +:require_empty+ [boolean] requires value to respond to
|
|
175
|
+
# +empty?+ message and to do so with true, unless +nil+
|
|
176
|
+
# @option +:nothrow+ [boolean] causes failure to be indicated by a +nil+
|
|
177
|
+
# return rather than a thrown exception
|
|
178
|
+
# @option +:message+ [boolean] specifies a message to be used in any
|
|
179
|
+
# thrown exception, which suppresses internal message
|
|
180
|
+
# preparation
|
|
181
|
+
# @option +:treat_as_option+ [boolean] If true, the value will be
|
|
182
|
+
# treated as an option when reporting check failure
|
|
183
|
+
#
|
|
155
184
|
def self.check_parameter value, name, options = {}, &block
|
|
156
185
|
|
|
157
186
|
Util_.check_parameter value, name, options, &block
|
|
@@ -161,7 +190,6 @@ module ParameterChecking
|
|
|
161
190
|
#
|
|
162
191
|
# @note This is obsolete, and will be removed in a future version.
|
|
163
192
|
# Please use +check_parameter+ instead
|
|
164
|
-
public
|
|
165
193
|
def self.check_param value, name, options = {}, &block
|
|
166
194
|
|
|
167
195
|
Util_.check_parameter value, name, options, &block
|
|
@@ -179,8 +207,17 @@ module ParameterChecking
|
|
|
179
207
|
|
|
180
208
|
warn "#{self}::check_parameter: invoked with non-string/non-symbol name: name.class=#{name.class}" unless name && [ ::String, ::Symbol ].any? { |c| name.is_a?(c) }
|
|
181
209
|
|
|
182
|
-
|
|
183
|
-
|
|
210
|
+
if treat_as_option
|
|
211
|
+
|
|
212
|
+
case name
|
|
213
|
+
when ::String
|
|
214
|
+
name = ':' + name if ':' != name[0]
|
|
215
|
+
when ::Symbol
|
|
216
|
+
name = ':' + name.to_s
|
|
217
|
+
else
|
|
218
|
+
end
|
|
219
|
+
end
|
|
220
|
+
|
|
184
221
|
|
|
185
222
|
# nil check
|
|
186
223
|
|
|
@@ -481,3 +518,4 @@ end # module Xqsr3
|
|
|
481
518
|
|
|
482
519
|
# ############################## end of file ############################# #
|
|
483
520
|
|
|
521
|
+
|
data/lib/xqsr3/version.rb
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# Purpose: Version for Xqsr3 library
|
|
6
6
|
#
|
|
7
7
|
# Created: 3rd April 2016
|
|
8
|
-
# Updated:
|
|
8
|
+
# Updated: 21st December 2017
|
|
9
9
|
#
|
|
10
10
|
# Home: http://github.com/synesissoftware/xqsr3
|
|
11
11
|
#
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
module Xqsr3
|
|
51
51
|
|
|
52
52
|
# Current version of the Xqsr3 library
|
|
53
|
-
VERSION = '0.
|
|
53
|
+
VERSION = '0.19.3'
|
|
54
54
|
|
|
55
55
|
private
|
|
56
56
|
VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#! /usr/bin/env ruby
|
|
2
|
+
#
|
|
3
|
+
# executes all other tests
|
|
4
|
+
|
|
5
|
+
this_dir = File.expand_path(File.dirname(__FILE__))
|
|
6
|
+
|
|
7
|
+
# all tc_*rb in current directory
|
|
8
|
+
Dir[File.join(this_dir, 'tc_*rb')].each { |file| require file }
|
|
9
|
+
|
|
10
|
+
# all ts_*rb in immediate sub-directories
|
|
11
|
+
Dir[File.join(this_dir, '*', 'ts_*rb')].each { |file| require file }
|
|
12
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#! /usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
$:.unshift File.join(File.dirname(__FILE__), *(['..']*5), 'lib')
|
|
4
|
+
|
|
5
|
+
require 'xqsr3/extensions/test/unit/assert_subclass_of'
|
|
6
|
+
|
|
7
|
+
require 'test/unit'
|
|
8
|
+
|
|
9
|
+
class Test_assert_subclass_of < Test::Unit::TestCase
|
|
10
|
+
|
|
11
|
+
class Grandparent; end
|
|
12
|
+
class Parent < Grandparent; end
|
|
13
|
+
class Child < Parent; end
|
|
14
|
+
|
|
15
|
+
def test_1
|
|
16
|
+
|
|
17
|
+
assert_subclass_of Object, Grandparent
|
|
18
|
+
assert_subclass_of Grandparent, Parent
|
|
19
|
+
assert_subclass_of Parent, Child
|
|
20
|
+
assert_subclass_of Grandparent, Child
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#! /usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
$:.unshift File.join(File.dirname(__FILE__), *(['..']*5), 'lib')
|
|
4
|
+
|
|
5
|
+
require 'xqsr3/extensions/test/unit/assert_superclass_of'
|
|
6
|
+
|
|
7
|
+
require 'test/unit'
|
|
8
|
+
|
|
9
|
+
class Test_assert_superclass_of < Test::Unit::TestCase
|
|
10
|
+
|
|
11
|
+
class Grandparent; end
|
|
12
|
+
class Parent < Grandparent; end
|
|
13
|
+
class Child < Parent; end
|
|
14
|
+
|
|
15
|
+
def test_1
|
|
16
|
+
|
|
17
|
+
assert_superclass_of Grandparent, Object
|
|
18
|
+
assert_superclass_of Parent, Grandparent
|
|
19
|
+
assert_superclass_of Child, Parent
|
|
20
|
+
assert_superclass_of Child, Grandparent
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#! /usr/bin/env ruby
|
|
2
|
+
#
|
|
3
|
+
# executes all other tests
|
|
4
|
+
|
|
5
|
+
this_dir = File.expand_path(File.dirname(__FILE__))
|
|
6
|
+
|
|
7
|
+
# all tc_*rb in current directory
|
|
8
|
+
Dir[File.join(this_dir, 'tc_*rb')].each { |file| require file }
|
|
9
|
+
|
|
10
|
+
# all ts_*rb in immediate sub-directories
|
|
11
|
+
Dir[File.join(this_dir, '*', 'ts_*rb')].each { |file| require file }
|
|
12
|
+
|
|
@@ -327,5 +327,116 @@ end
|
|
|
327
327
|
self.class.check_method_type_class :sym, ::String
|
|
328
328
|
end
|
|
329
329
|
end
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
# test treat_as_option
|
|
333
|
+
|
|
334
|
+
def check_method_tao_1 h, o, options = {}, &block
|
|
335
|
+
|
|
336
|
+
check_parameter h[o], o, options.merge({ treat_as_option: true }), &block
|
|
337
|
+
end
|
|
338
|
+
|
|
339
|
+
def test_tao_1
|
|
340
|
+
|
|
341
|
+
assert_true check_method_tao_1({ thing: true }, :thing)
|
|
342
|
+
assert_false check_method_tao_1({ thing: false }, :thing)
|
|
343
|
+
assert_equal [], check_method_tao_1({ thing: [] }, :thing)
|
|
344
|
+
|
|
345
|
+
begin
|
|
346
|
+
check_method_tao_1({ thing: true }, :thingy)
|
|
347
|
+
|
|
348
|
+
assert(false, 'should not get here')
|
|
349
|
+
rescue ArgumentError => ax
|
|
350
|
+
|
|
351
|
+
assert_equal "option ':thingy' may not be nil", ax.message
|
|
352
|
+
rescue => x
|
|
353
|
+
|
|
354
|
+
assert(false, "wrong exception type #{x.class}) (with message '#{x.message}'")
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
begin
|
|
358
|
+
check_method_tao_1({ thing: true }, 'thingy')
|
|
359
|
+
|
|
360
|
+
assert(false, 'should not get here')
|
|
361
|
+
rescue ArgumentError => ax
|
|
362
|
+
|
|
363
|
+
assert_equal "option ':thingy' may not be nil", ax.message
|
|
364
|
+
rescue => x
|
|
365
|
+
|
|
366
|
+
assert(false, "wrong exception type #{x.class}) (with message '#{x.message}'")
|
|
367
|
+
end
|
|
368
|
+
|
|
369
|
+
begin
|
|
370
|
+
check_method_tao_1({ thing: true }, ':thingy')
|
|
371
|
+
|
|
372
|
+
assert(false, 'should not get here')
|
|
373
|
+
rescue ArgumentError => ax
|
|
374
|
+
|
|
375
|
+
assert_equal "option ':thingy' may not be nil", ax.message
|
|
376
|
+
rescue => x
|
|
377
|
+
|
|
378
|
+
assert(false, "wrong exception type #{x.class}) (with message '#{x.message}'")
|
|
379
|
+
end
|
|
380
|
+
end
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
# test treat_as_option
|
|
384
|
+
|
|
385
|
+
def check_method_tao_2 h, o, options = {}, &block
|
|
386
|
+
|
|
387
|
+
check_option h, o, options.merge({ }), &block
|
|
388
|
+
end
|
|
389
|
+
|
|
390
|
+
def check_method_tao_class_2 h, o, options = {}, &block
|
|
391
|
+
|
|
392
|
+
check_option h, o, options.merge({ }), &block
|
|
393
|
+
end
|
|
394
|
+
|
|
395
|
+
def test_tao_2
|
|
396
|
+
|
|
397
|
+
assert_true check_method_tao_2({ thing: true }, :thing)
|
|
398
|
+
assert_false check_method_tao_2({ thing: false }, :thing)
|
|
399
|
+
assert_equal [], check_method_tao_2({ thing: [] }, :thing)
|
|
400
|
+
|
|
401
|
+
assert_true check_method_tao_class_2({ thing: true }, :thing)
|
|
402
|
+
assert_false check_method_tao_class_2({ thing: false }, :thing)
|
|
403
|
+
assert_equal [], check_method_tao_class_2({ thing: [] }, :thing)
|
|
404
|
+
|
|
405
|
+
begin
|
|
406
|
+
check_method_tao_2({ thing: true }, :thingy)
|
|
407
|
+
|
|
408
|
+
assert(false, 'should not get here')
|
|
409
|
+
rescue ArgumentError => ax
|
|
410
|
+
|
|
411
|
+
assert_equal "option ':thingy' may not be nil", ax.message
|
|
412
|
+
rescue => x
|
|
413
|
+
|
|
414
|
+
assert(false, "wrong exception type #{x.class}) (with message '#{x.message}'")
|
|
415
|
+
end
|
|
416
|
+
|
|
417
|
+
begin
|
|
418
|
+
check_method_tao_2({ thing: true }, 'thingy')
|
|
419
|
+
|
|
420
|
+
assert(false, 'should not get here')
|
|
421
|
+
rescue ArgumentError => ax
|
|
422
|
+
|
|
423
|
+
assert_equal "option ':thingy' may not be nil", ax.message
|
|
424
|
+
rescue => x
|
|
425
|
+
|
|
426
|
+
assert(false, "wrong exception type #{x.class}) (with message '#{x.message}'")
|
|
427
|
+
end
|
|
428
|
+
|
|
429
|
+
begin
|
|
430
|
+
check_method_tao_2({ thing: true }, ':thingy')
|
|
431
|
+
|
|
432
|
+
assert(false, 'should not get here')
|
|
433
|
+
rescue ArgumentError => ax
|
|
434
|
+
|
|
435
|
+
assert_equal "option ':thingy' may not be nil", ax.message
|
|
436
|
+
rescue => x
|
|
437
|
+
|
|
438
|
+
assert(false, "wrong exception type #{x.class}) (with message '#{x.message}'")
|
|
439
|
+
end
|
|
440
|
+
end
|
|
330
441
|
end
|
|
331
442
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: xqsr3
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.19.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matt Wilson
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-12-
|
|
11
|
+
date: 2017-12-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: |
|
|
14
14
|
eXtensions by fine Quantum for Standard Ruby and 3rd-party libraries is a
|
|
@@ -52,6 +52,8 @@ files:
|
|
|
52
52
|
- lib/xqsr3/extensions/test/unit/assert_false.rb
|
|
53
53
|
- lib/xqsr3/extensions/test/unit/assert_not.rb
|
|
54
54
|
- lib/xqsr3/extensions/test/unit/assert_not_eql.rb
|
|
55
|
+
- lib/xqsr3/extensions/test/unit/assert_subclass_of.rb
|
|
56
|
+
- lib/xqsr3/extensions/test/unit/assert_superclass_of.rb
|
|
55
57
|
- lib/xqsr3/extensions/test/unit/assert_true.rb
|
|
56
58
|
- lib/xqsr3/extensions/test/unit.rb
|
|
57
59
|
- lib/xqsr3/hash_utilities/deep_transform.rb
|
|
@@ -96,6 +98,10 @@ files:
|
|
|
96
98
|
- test/unit/extensions/string/tc_starts_with.rb
|
|
97
99
|
- test/unit/extensions/string/tc_to_symbol.rb
|
|
98
100
|
- test/unit/extensions/string/ts_all.rb
|
|
101
|
+
- test/unit/extensions/test/ts_all.rb
|
|
102
|
+
- test/unit/extensions/test/unit/tc_assert_subclass_of.rb
|
|
103
|
+
- test/unit/extensions/test/unit/tc_assert_superclass_of.rb
|
|
104
|
+
- test/unit/extensions/test/unit/ts_all.rb
|
|
99
105
|
- test/unit/extensions/ts_all.rb
|
|
100
106
|
- test/unit/hash_utilities/tc_has_match.rb
|
|
101
107
|
- test/unit/hash_utilities/tc_match.rb
|