xqsr3 0.37.0 → 0.38.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/xqsr3/command_line_utilities/map_option_string.rb +2 -1
- data/lib/xqsr3/extensions/hash/except.rb +7 -1
- data/lib/xqsr3/extensions/string/map_option_string.rb +9 -0
- data/lib/xqsr3/extensions/test/unit/assert_raise_with_message.rb +0 -2
- data/lib/xqsr3/quality/parameter_checking.rb +20 -2
- data/lib/xqsr3/string_utilities/quote_if.rb +0 -4
- data/lib/xqsr3/version.rb +3 -3
- data/test/unit/command_line_utilities/tc_map_option_string.rb +5 -0
- data/test/unit/quality/tc_parameter_checking.rb +36 -5
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e4daad1c3c67fdf61c583a51ba736ff81e75b80
|
4
|
+
data.tar.gz: d6d61c42b272907440cd1050b24d86be9cada0b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a5986a93e709f33a02cfc1c90343b0f520ab4960c8b42b97df96fc71a34debfd41932a2012e98afcd6392e5d37b2b694bc7f6fc4fcefbd9c25b6a3587c8d5dc
|
7
|
+
data.tar.gz: 0d7d35382e452b1f104d04da69c7113e9f59e157357ff78efbaa0c9cb9f3a92c181122792b8fafcbb9ac5c6c6cb9c7da2e2ca432d02b1e55c5e4c93616baaa5e
|
data/README.md
CHANGED
@@ -6,12 +6,13 @@
|
|
6
6
|
# ::Xqsr3::CommandLineUtilities::MapOptionString module
|
7
7
|
#
|
8
8
|
# Created: 15th April 2016
|
9
|
-
# Updated:
|
9
|
+
# Updated: 19th July 2022
|
10
10
|
#
|
11
11
|
# Home: http://github.com/synesissoftware/xqsr3
|
12
12
|
#
|
13
13
|
# Author: Matthew Wilson
|
14
14
|
#
|
15
|
+
# Copyright (c) 2019-2022, Matthew Wilson and Synesis Information Systems
|
15
16
|
# Copyright (c) 2016-2019, Matthew Wilson and Synesis Software
|
16
17
|
# All rights reserved.
|
17
18
|
#
|
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
unless Hash.instance_methods.include? :except
|
2
|
+
unless Hash.instance_methods.include? :except!
|
3
3
|
|
4
4
|
class Hash
|
5
5
|
|
@@ -14,6 +14,12 @@ unless Hash.instance_methods.include? :except
|
|
14
14
|
|
15
15
|
self
|
16
16
|
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
unless Hash.instance_methods.include? :except
|
21
|
+
|
22
|
+
class Hash
|
17
23
|
|
18
24
|
# Obtains a copy of the instance wherein any key-value pairs
|
19
25
|
# matching the keys specified in +keys_to_delete+ are removed
|
@@ -11,11 +11,9 @@ module X_assert_raise_with_message_ # :nodoc: all
|
|
11
11
|
|
12
12
|
if TestUnitVersion_.is_at_least? [ 3, 0, 8 ]
|
13
13
|
|
14
|
-
# @!visibility private
|
15
14
|
AssertionFailedError_ = Test::Unit::AssertionFailedError # :nodoc:
|
16
15
|
else
|
17
16
|
|
18
|
-
# @!visibility private
|
19
17
|
class AssertionFailedError_ < ArgumentError; end # :nodoc:
|
20
18
|
end
|
21
19
|
|
@@ -5,13 +5,14 @@
|
|
5
5
|
# Purpose: Definition of the ParameterChecking module
|
6
6
|
#
|
7
7
|
# Created: 12th February 2015
|
8
|
-
# Updated:
|
8
|
+
# Updated: 22nd July 2022
|
9
9
|
#
|
10
10
|
# Home: http://github.com/synesissoftware/xqsr3
|
11
11
|
#
|
12
12
|
# Author: Matthew Wilson
|
13
13
|
#
|
14
|
-
# Copyright (c)
|
14
|
+
# Copyright (c) 2019-2022, Matthew Wilson and Synesis Information Systems
|
15
|
+
# Copyright (c) 2016-2019, Matthew Wilson and Synesis Software
|
15
16
|
# All rights reserved.
|
16
17
|
#
|
17
18
|
# Redistribution and use in source and binary forms, with or without
|
@@ -199,6 +200,22 @@ module ParameterChecking
|
|
199
200
|
Util_.check_parameter value, name, options, &block
|
200
201
|
end
|
201
202
|
|
203
|
+
# Specific form of the +check_parameter()+ that is used to check
|
204
|
+
# options, taking instead the hash and the key
|
205
|
+
#
|
206
|
+
# === Signature
|
207
|
+
#
|
208
|
+
# * *Parameters:*
|
209
|
+
# - +h+ (::Hash) The options hash from which the named element is to be tested. May not be +nil+
|
210
|
+
# - +name+ (::String, ::Symbol, [ ::String, ::Symbol ]) The options key name, or an array of names. May not be +nil+
|
211
|
+
# - +options+ (::Hash) options that moderate the behaviour in the same way as for +check_parameter()+ except that the +:treat_as_option+ option (with the value +true+) is merged in before calling +check_parameter()+
|
212
|
+
#
|
213
|
+
# * *Options:*
|
214
|
+
def self.check_option h, name, options = {}, &block
|
215
|
+
|
216
|
+
Util_.check_option h, name, options, &block
|
217
|
+
end
|
218
|
+
|
202
219
|
private
|
203
220
|
def Util_.check_option h, names, options = {}, &block
|
204
221
|
|
@@ -381,6 +398,7 @@ module ParameterChecking
|
|
381
398
|
# messages
|
382
399
|
|
383
400
|
messages = options[:responds_to] || []
|
401
|
+
messages = [ messages ] unless messages.respond_to? :each
|
384
402
|
|
385
403
|
warn "#{self}::check_parameter: options[:responds_to] of type #{messages.class} - should be #{::Array}" unless messages.is_a?(Array)
|
386
404
|
warn "#{self}::check_parameter: options[:responds_to] should contain only symbols or strings" if messages.is_a?(::Array) && !messages.all? { |m| ::Symbol === m || ::String === m }
|
@@ -63,8 +63,6 @@ module QuoteIf
|
|
63
63
|
|
64
64
|
def self.string_quote_if_array_ s, options # :nodoc:
|
65
65
|
|
66
|
-
#$stderr.puts "#{self}#{__method__}(s (#{s.class})='#{s}', options (#{options.class})='#{options}'"
|
67
|
-
|
68
66
|
s = s.to_s unless String === s
|
69
67
|
|
70
68
|
quotes = options[:quotes] || [ '"', '"' ]
|
@@ -72,8 +70,6 @@ module QuoteIf
|
|
72
70
|
|
73
71
|
quotables = options[:quotables] || /\s/
|
74
72
|
|
75
|
-
#$stderr.puts "quotables (#{quotables.class}): [#{quotables}]"
|
76
|
-
|
77
73
|
case quotables
|
78
74
|
when ::String
|
79
75
|
|
data/lib/xqsr3/version.rb
CHANGED
@@ -5,13 +5,13 @@
|
|
5
5
|
# Purpose: Version for Xqsr3 library
|
6
6
|
#
|
7
7
|
# Created: 3rd April 2016
|
8
|
-
# Updated:
|
8
|
+
# Updated: 25th July 2022
|
9
9
|
#
|
10
10
|
# Home: http://github.com/synesissoftware/xqsr3
|
11
11
|
#
|
12
12
|
# Author: Matthew Wilson
|
13
13
|
#
|
14
|
-
# Copyright (c) 2019-
|
14
|
+
# Copyright (c) 2019-2022, Matthew Wilson and Synesis Information Systems
|
15
15
|
# Copyright (c) 2016-2019, Matthew Wilson and Synesis Software
|
16
16
|
# All rights reserved.
|
17
17
|
#
|
@@ -51,7 +51,7 @@
|
|
51
51
|
module Xqsr3
|
52
52
|
|
53
53
|
# Current version of the Xqsr3 library
|
54
|
-
VERSION = '0.
|
54
|
+
VERSION = '0.38.0'
|
55
55
|
|
56
56
|
private
|
57
57
|
VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
|
@@ -35,5 +35,10 @@ class Test_Xqsr3_CommandLineUtilities_map_option_string < Test::Unit::TestCase
|
|
35
35
|
assert_nil MapOptionString.map_option_string_from_string(shortcut, option_strings)
|
36
36
|
end
|
37
37
|
end
|
38
|
+
|
39
|
+
def test_nil
|
40
|
+
|
41
|
+
assert_nil nil.map_option_string []
|
42
|
+
end
|
38
43
|
end
|
39
44
|
|
@@ -7,13 +7,39 @@ require 'xqsr3/quality/parameter_checking'
|
|
7
7
|
require 'xqsr3/extensions/test/unit'
|
8
8
|
require 'test/unit'
|
9
9
|
|
10
|
+
|
11
|
+
class Test_check_option_multiple_option_names < Test::Unit::TestCase
|
12
|
+
|
13
|
+
include ::Xqsr3::Quality::ParameterChecking
|
14
|
+
|
15
|
+
def check_method_stringise_stringize **options
|
16
|
+
|
17
|
+
check_option options, [ :stringise, :stringize ], nil: true
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_1
|
21
|
+
|
22
|
+
assert_nil check_method_stringise_stringize()
|
23
|
+
|
24
|
+
assert_nil check_method_stringise_stringize(abc: :abc)
|
25
|
+
|
26
|
+
assert_equal :stringize, check_method_stringise_stringize(stringize: :stringize)
|
27
|
+
assert_equal :stringise, check_method_stringise_stringize(stringise: :stringise)
|
28
|
+
assert_equal :stringise, check_method_stringise_stringize(stringize: :stringize, stringise: :stringise)
|
29
|
+
assert_equal :stringise, check_method_stringise_stringize(stringise: :stringise, stringize: :stringize)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
10
33
|
class Test_parameter_checks_as_separate_module < Test::Unit::TestCase
|
11
34
|
|
12
35
|
PC = ::Xqsr3::Quality::ParameterChecking
|
13
36
|
|
14
37
|
# test 1
|
15
38
|
|
16
|
-
def check_method_1 a
|
39
|
+
def check_method_1 a, **options
|
40
|
+
|
41
|
+
PC.check_option options, :o1, nil: true
|
42
|
+
PC.check_option options, :o2, nil: false
|
17
43
|
|
18
44
|
PC.check_param a, 'a'
|
19
45
|
end
|
@@ -25,10 +51,10 @@ class Test_parameter_checks_as_separate_module < Test::Unit::TestCase
|
|
25
51
|
check_method_1(nil)
|
26
52
|
end
|
27
53
|
|
28
|
-
assert_equal true, check_method_1(true)
|
29
|
-
assert_equal '', check_method_1('')
|
30
|
-
assert_equal [], check_method_1([])
|
31
|
-
assert_equal Hash.new, check_method_1(Hash.new)
|
54
|
+
assert_equal true, check_method_1(true, o1: true, o2: false)
|
55
|
+
assert_equal '', check_method_1('', o1: true, o2: false)
|
56
|
+
assert_equal [], check_method_1([], o1: true, o2: false)
|
57
|
+
assert_equal Hash.new, check_method_1(Hash.new, o1: true, o2: false)
|
32
58
|
end
|
33
59
|
|
34
60
|
|
@@ -328,6 +354,11 @@ end
|
|
328
354
|
|
329
355
|
check_responds_to Hash.new, [ :this_is_not_a_Hash_method ]
|
330
356
|
end
|
357
|
+
|
358
|
+
# check can pass single types
|
359
|
+
assert check_responds_to Hash.new, :[]
|
360
|
+
assert check_responds_to Hash.new, :map
|
361
|
+
assert check_responds_to Hash.new, :to_s
|
331
362
|
end
|
332
363
|
|
333
364
|
|
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.38.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Wilson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-25 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
|
@@ -162,9 +162,12 @@ require_paths:
|
|
162
162
|
- lib
|
163
163
|
required_ruby_version: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
|
-
- - "
|
165
|
+
- - ">="
|
166
166
|
- !ruby/object:Gem::Version
|
167
167
|
version: '2.0'
|
168
|
+
- - "<"
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: '4'
|
168
171
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
172
|
requirements:
|
170
173
|
- - ">="
|