xqsr3 0.32.2 → 0.32.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/array_utilities/join_with_or.rb +7 -14
- data/lib/xqsr3/command_line_utilities/map_option_string.rb +19 -7
- data/lib/xqsr3/containers/frequency_map.rb +1 -1
- data/lib/xqsr3/containers/multi_map.rb +28 -0
- data/lib/xqsr3/conversion/bool_parser.rb +11 -14
- data/lib/xqsr3/conversion/integer_parser.rb +7 -14
- data/lib/xqsr3/diagnostics/exception_utilities.rb +2 -2
- data/lib/xqsr3/diagnostics/exceptions/with_cause.rb +15 -7
- data/lib/xqsr3/diagnostics/inspect_builder.rb +11 -15
- data/lib/xqsr3/doc_.rb +138 -9
- data/lib/xqsr3/extensions/array/join_with_or.rb +6 -0
- data/lib/xqsr3/extensions/enumerable/collect_with_index.rb +5 -4
- data/lib/xqsr3/extensions/enumerable/detect_map.rb +6 -7
- data/lib/xqsr3/extensions/hash/has_match.rb +7 -0
- data/lib/xqsr3/extensions/hash/match.rb +7 -0
- data/lib/xqsr3/extensions/kernel/integer.rb +6 -13
- data/lib/xqsr3/extensions/string/to_bool.rb +4 -0
- data/lib/xqsr3/extensions/test/unit/assert_eql.rb +1 -0
- data/lib/xqsr3/extensions/test/unit/assert_false.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_raise_with_message.rb +5 -2
- data/lib/xqsr3/extensions/test/unit/assert_subclass_of.rb +1 -0
- data/lib/xqsr3/extensions/test/unit/assert_superclass_of.rb +1 -0
- data/lib/xqsr3/extensions/test/unit/assert_true.rb +1 -0
- data/lib/xqsr3/extensions/test/unit/assert_type_has_instance_methods.rb +3 -12
- data/lib/xqsr3/hash_utilities/deep_transform.rb +2 -2
- data/lib/xqsr3/internal_/test_unit_version_.rb +4 -4
- data/lib/xqsr3/io/writelines.rb +6 -6
- data/lib/xqsr3/quality/parameter_checking.rb +50 -77
- data/lib/xqsr3/string_utilities/ends_with.rb +14 -6
- data/lib/xqsr3/string_utilities/nil_if_empty.rb +6 -3
- data/lib/xqsr3/string_utilities/nil_if_whitespace.rb +7 -3
- data/lib/xqsr3/string_utilities/quote_if.rb +10 -13
- data/lib/xqsr3/string_utilities/starts_with.rb +22 -5
- data/lib/xqsr3/string_utilities/to_symbol.rb +23 -5
- data/lib/xqsr3/string_utilities/truncate.rb +19 -4
- data/lib/xqsr3/version.rb +1 -1
- metadata +1 -1
@@ -3,6 +3,12 @@ require 'xqsr3/array_utilities/join_with_or'
|
|
3
3
|
|
4
4
|
class Array
|
5
5
|
|
6
|
+
# Extended method implemented by JoinWithOr
|
7
|
+
#
|
8
|
+
# === Signature
|
9
|
+
#
|
10
|
+
# * *Parameters:*
|
11
|
+
# - +options+ (Hash) See Xqsr3::ArrayUtilities
|
6
12
|
def join_with_or **options
|
7
13
|
|
8
14
|
return ::Xqsr3::ArrayUtilities::JoinWithOr.join_with_or self, **options
|
@@ -5,13 +5,13 @@
|
|
5
5
|
# Purpose: Adds a collect_with_index() method to the Enumerable module
|
6
6
|
#
|
7
7
|
# Created: 24th October 2010
|
8
|
-
# Updated:
|
8
|
+
# Updated: 12th April 2019
|
9
9
|
#
|
10
10
|
# Home: http://github.com/synesissoftware/xqsr3
|
11
11
|
#
|
12
12
|
# Author: Matthew Wilson
|
13
13
|
#
|
14
|
-
# Copyright (c) 2010-
|
14
|
+
# Copyright (c) 2010-2019, Matthew Wilson and Synesis Software
|
15
15
|
# All rights reserved.
|
16
16
|
#
|
17
17
|
# Redistribution and use in source and binary forms, with or without
|
@@ -52,8 +52,9 @@
|
|
52
52
|
|
53
53
|
module Enumerable
|
54
54
|
|
55
|
-
|
56
|
-
# index, which increments by 1 for each
|
55
|
+
# Two-parameter variant of +Enumerable+#+collect+, where the second
|
56
|
+
# parameter is a +base+-based index, which increments by 1 for each
|
57
|
+
# enumerated element.
|
57
58
|
def collect_with_index(base = 0)
|
58
59
|
|
59
60
|
a = []
|
@@ -5,13 +5,13 @@
|
|
5
5
|
# Purpose: ::Enumerable#detect_map extension
|
6
6
|
#
|
7
7
|
# Created: 3rd December 2017
|
8
|
-
# Updated:
|
8
|
+
# Updated: 12th April 2019
|
9
9
|
#
|
10
10
|
# Home: http://github.com/synesissoftware/xqsr3
|
11
11
|
#
|
12
12
|
# Author: Matthew Wilson
|
13
13
|
#
|
14
|
-
# Copyright (c) 2017, Matthew Wilson and Synesis Software
|
14
|
+
# Copyright (c) 2017-2019, Matthew Wilson and Synesis Software
|
15
15
|
# All rights reserved.
|
16
16
|
#
|
17
17
|
# Redistribution and use in source and binary forms, with or without
|
@@ -49,15 +49,15 @@
|
|
49
49
|
|
50
50
|
module Enumerable
|
51
51
|
|
52
|
-
# The +Enumerable
|
52
|
+
# The +Enumerable+#+detect+ method provides a way to detect the presence
|
53
53
|
# of a particular value in a collection. The only constraint is that you
|
54
54
|
# get back the object unchanged.
|
55
55
|
#
|
56
|
-
# The +Enumerable
|
56
|
+
# The +Enumerable+#+map+ method provides a way to transform the contents of
|
57
57
|
# a collection. The only constraint is that you get back another
|
58
58
|
# collection.
|
59
59
|
#
|
60
|
-
# This extension method, +Enumerable
|
60
|
+
# This extension method, +Enumerable+#+detect_map+ combines the features
|
61
61
|
# of both, in that it detects the presence of a particular value in a
|
62
62
|
# collection and transform the detected value.
|
63
63
|
#
|
@@ -65,7 +65,7 @@ module Enumerable
|
|
65
65
|
#
|
66
66
|
# { :ab => 'cd', :ef => 'gh' }.detect_map { |k, v| v.upcase if k == :ef } # => 'GH'
|
67
67
|
#
|
68
|
-
#
|
68
|
+
# *Note:* The block is required (for technical reasons), and must have
|
69
69
|
# arity 1 for sequences or 2 for associations
|
70
70
|
def detect_map &block
|
71
71
|
|
@@ -89,7 +89,6 @@ module Enumerable
|
|
89
89
|
|
90
90
|
nil
|
91
91
|
end
|
92
|
-
|
93
92
|
end # module Enumerable
|
94
93
|
|
95
94
|
# ############################## end of file ############################# #
|
@@ -3,6 +3,13 @@ require 'xqsr3/hash_utilities/key_matching'
|
|
3
3
|
|
4
4
|
class Hash
|
5
5
|
|
6
|
+
# Extended method implemented by Xqsr3::HashUtilities::KeyMatching
|
7
|
+
#
|
8
|
+
# === Signature
|
9
|
+
#
|
10
|
+
# * *Parameters:*
|
11
|
+
# - +re+ (Regexp) The regular expression
|
12
|
+
# - +options+ (Hash) See Xqsr3::HashUtilities::KeyMatching
|
6
13
|
def has_match? re, **options
|
7
14
|
|
8
15
|
return ::Xqsr3::HashUtilities::KeyMatching.has_match? self, re, **options
|
@@ -3,6 +3,13 @@ require 'xqsr3/hash_utilities/key_matching'
|
|
3
3
|
|
4
4
|
class Hash
|
5
5
|
|
6
|
+
# Extended method implemented by Xqsr3::HashUtilities::KeyMatching
|
7
|
+
#
|
8
|
+
# === Signature
|
9
|
+
#
|
10
|
+
# * *Parameters:*
|
11
|
+
# - +re+ (Regexp) The regular expression
|
12
|
+
# - +options+ (Hash) See Xqsr3::HashUtilities::KeyMatching
|
6
13
|
def match re, **options
|
7
14
|
|
8
15
|
return ::Xqsr3::HashUtilities::KeyMatching.match self, re, **options
|
@@ -61,21 +61,14 @@ module Kernel
|
|
61
61
|
# === Signature
|
62
62
|
#
|
63
63
|
# * *Parameters:*
|
64
|
-
# - +arg
|
65
|
-
# - +base
|
66
|
-
# - +options
|
67
|
-
#
|
68
|
-
# - +block+:: An optional caller-supplied block that will be invoked
|
69
|
-
# with the +ArgumentError+ exception, allowing the caller to take
|
70
|
-
# additional action. If the block returns then its return value will
|
71
|
-
# be returned to the caller
|
64
|
+
# - +arg+ The argument to be converted (to +Fixnum+ or +Bignum+)
|
65
|
+
# - +base+ A value of 0, or between 2 and 36. Defaults to 0
|
66
|
+
# - +options+ An options hash, containing any of the following options
|
67
|
+
# - +block+ An optional caller-supplied block that will be invoked with the +ArgumentError+ exception, allowing the caller to take additional action. If the block returns then its return value will be returned to the caller
|
72
68
|
#
|
73
69
|
# * *Options:*
|
74
|
-
# - +:default
|
75
|
-
#
|
76
|
-
# - +:nil+:: Returns +nil+ if +arg+ is +nil+ or cannot be
|
77
|
-
# converted by (the original) +Kernel#Integer+. Ignored if
|
78
|
-
# +:default+ is specified
|
70
|
+
# - +:default+ A default value to be used when +arg+ is +nil+ or cannot be converted by (the original) +Kernel#Integer+
|
71
|
+
# - +:nil+ Returns +nil+ if +arg+ is +nil+ or cannot be converted by (the original) +Kernel#Integer+. Ignored if +:default+ is specified
|
79
72
|
def Integer(arg, base = 0, **options, &block)
|
80
73
|
|
81
74
|
::Xqsr3::Conversion::IntegerParser.to_integer arg, base = 0, **options, &block
|
@@ -3,6 +3,10 @@ require 'xqsr3/conversion/bool_parser'
|
|
3
3
|
|
4
4
|
class String
|
5
5
|
|
6
|
+
# Attempts to convert instance to a Boolean value, based on the given
|
7
|
+
# +options+
|
8
|
+
#
|
9
|
+
# See Xqsr3::Conversion::BoolParser
|
6
10
|
def to_bool **options
|
7
11
|
|
8
12
|
return ::Xqsr3::Conversion::BoolParser.to_bool self, **options
|
@@ -7,10 +7,10 @@ module X_assert_raise_with_message_ # :nodoc:
|
|
7
7
|
|
8
8
|
if TestUnitVersion_.is_at_least? [ 3, 0, 8 ]
|
9
9
|
|
10
|
-
AssertionFailedError_ = Test::Unit::AssertionFailedError
|
10
|
+
AssertionFailedError_ = Test::Unit::AssertionFailedError # :nodoc:
|
11
11
|
else
|
12
12
|
|
13
|
-
class AssertionFailedError_ < ArgumentError; end
|
13
|
+
class AssertionFailedError_ < ArgumentError; end # :nodoc:
|
14
14
|
end
|
15
15
|
|
16
16
|
end # module X_assert_raise_with_message_
|
@@ -24,6 +24,9 @@ module Assertions
|
|
24
24
|
|
25
25
|
undef :assert_raise_with_message if respond_to? :assert_raise_with_message
|
26
26
|
|
27
|
+
# Asserts that the attached block raises an exception of one of the
|
28
|
+
# exceptions defined by +type_spec+ and/or has a message matching
|
29
|
+
# +message_spec+
|
27
30
|
def assert_raise_with_message(type_spec, message_spec, failure_message = nil, &block)
|
28
31
|
|
29
32
|
unless block_given?
|
@@ -6,6 +6,7 @@ module Assertions
|
|
6
6
|
|
7
7
|
unless respond_to? :assert_subclass_of
|
8
8
|
|
9
|
+
# Assert that +tested_class+ is a sub-class of +parent_class+
|
9
10
|
def assert_subclass_of(parent_class, tested_class, failure_message = nil)
|
10
11
|
|
11
12
|
failure_message ||= "#{tested_class} is not a subclass of #{parent_class}"
|
@@ -6,6 +6,7 @@ module Assertions
|
|
6
6
|
|
7
7
|
unless respond_to? :assert_superclass_of
|
8
8
|
|
9
|
+
# Assert that +tested_class+ is a super-class of +child_class+
|
9
10
|
def assert_superclass_of(child_class, tested_class, failure_message = nil)
|
10
11
|
|
11
12
|
failure_message ||= "#{tested_class} is not a superclass of #{child_class}"
|
@@ -12,18 +12,9 @@ module Assertions
|
|
12
12
|
# === Signature
|
13
13
|
#
|
14
14
|
# * *Parameters:*
|
15
|
-
# - +type
|
16
|
-
# - +message_spec
|
17
|
-
#
|
18
|
-
# ::Symbol, then instances must respond to this single message.
|
19
|
-
# If an ::Array (all elements of which must be ::Symbol), then
|
20
|
-
# instances must respond to _all_ messages. If a ::Hash, then
|
21
|
-
# instances must respond to _all_ messages represented by the
|
22
|
-
# keys; the values are available for specifying a custom failure
|
23
|
-
# message (or value is +nil+ for stock message)
|
24
|
-
# - +failure_message+:: [::String] If specified, is used when
|
25
|
-
# instances of +type+ do not respond to a message and no custom
|
26
|
-
# failure message is provided for it
|
15
|
+
# - +type+ (::Class) The type
|
16
|
+
# - +message_spec+ (::Symbol, ::Array, ::Hash) A specification of message(s) received by the instances of +type+. If a ::Symbol, then instances must respond to this single message. If an ::Array (all elements of which must be ::Symbol), then instances must respond to _all_ messages. If a ::Hash, then instances must respond to _all_ messages represented by the keys; the values are available for specifying a custom failure message (or value is +nil+ for stock message)
|
17
|
+
# - +failure_message+ (::String) If specified, is used when instances of +type+ do not respond to a message and no custom failure message is provided for it
|
27
18
|
def assert_type_has_instance_methods(type, message_spec, failure_message = nil)
|
28
19
|
|
29
20
|
warn "type parameter - '#{type} (#{type.class})' - should be a Class" unless type.is_a?(::Class)
|
@@ -59,7 +59,7 @@ module HashUtilities
|
|
59
59
|
module DeepTransform
|
60
60
|
|
61
61
|
private
|
62
|
-
def self.do_deep_transform_on_hashlike_ h, &block
|
62
|
+
def self.do_deep_transform_on_hashlike_ h, &block # :nodoc:
|
63
63
|
|
64
64
|
::Xqsr3::Quality::ParameterChecking.check_parameter h, 'h', responds_to: [ :map ]
|
65
65
|
|
@@ -92,7 +92,7 @@ module DeepTransform
|
|
92
92
|
h
|
93
93
|
end
|
94
94
|
|
95
|
-
def do_deep_transform_on_self_ &block
|
95
|
+
def do_deep_transform_on_self_ &block # :nodoc:
|
96
96
|
|
97
97
|
::Xqsr3::Quality::ParameterChecking.check_parameter h, 'h', responds_to: [ :[]=, :delete, :keys ]
|
98
98
|
|
@@ -8,8 +8,8 @@ begin
|
|
8
8
|
require 'test/unit/version'
|
9
9
|
|
10
10
|
module Xqsr3
|
11
|
-
module Internal_
|
12
|
-
module TestUnitVersion_
|
11
|
+
module Internal_ # :nodoc:
|
12
|
+
module TestUnitVersion_ # :nodoc:
|
13
13
|
|
14
14
|
TEST_UNIT_VERSION_ = Test::Unit::VERSION # :nodoc:
|
15
15
|
end # module TestUnitVersion_
|
@@ -18,8 +18,8 @@ begin
|
|
18
18
|
rescue LoadError
|
19
19
|
|
20
20
|
module Xqsr3
|
21
|
-
module Internal_
|
22
|
-
module TestUnitVersion_
|
21
|
+
module Internal_ # :nodoc:
|
22
|
+
module TestUnitVersion_ # :nodoc:
|
23
23
|
|
24
24
|
TEST_UNIT_VERSION_ = :not_found # :nodoc:
|
25
25
|
end # module TestUnitVersion_
|
data/lib/xqsr3/io/writelines.rb
CHANGED
@@ -126,14 +126,14 @@ $stderr.puts "#{self.class}.write_to_target_(target(#{target.class})='#{target}'
|
|
126
126
|
# === Signature
|
127
127
|
#
|
128
128
|
# * *Parameters:*
|
129
|
-
# - +target
|
130
|
-
# - +contents
|
131
|
-
# - +options
|
129
|
+
# - +target+ The target of the write, which may be a string containing the path or a stream instance that supports write
|
130
|
+
# - +contents+ The contents to be write, which may be a +Hash+, or an +Array+, or a +String+ containing delimited fields
|
131
|
+
# - +options+ An options hash, containing any of the following options
|
132
132
|
#
|
133
133
|
# * *Options:*
|
134
|
-
# - +:column_separator
|
135
|
-
# - +:eol_lookahead_limit
|
136
|
-
# - +:line_separator
|
134
|
+
# - +:column_separator+ {optional} The column separator, to be applied between each field in the case where +contents+ is a +Hash+.
|
135
|
+
# - +:eol_lookahead_limit+ {optional} The number of content elements (line/pair) to inspect to determine whether element has a terminating end-of-line sequence. Defaults to 20. If 0, and +:line_separator+ is not specified, then will default to <tt>"\n"</tt>. If +nil+, then every line will be inspected.
|
136
|
+
# - +:line_separator+ {optional} The line separator, to be applied to the end of line created from each entry. When not specified, it will be deduced by inspecting +contents+ (according to +eol_lookahead_limit+).
|
137
137
|
#
|
138
138
|
# === Return
|
139
139
|
#
|
@@ -5,13 +5,13 @@
|
|
5
5
|
# Purpose: Definition of the ParameterChecking module
|
6
6
|
#
|
7
7
|
# Created: 12th February 2015
|
8
|
-
# Updated:
|
8
|
+
# Updated: 12th April 2019
|
9
9
|
#
|
10
10
|
# Home: http://github.com/synesissoftware/xqsr3
|
11
11
|
#
|
12
12
|
# Author: Matthew Wilson
|
13
13
|
#
|
14
|
-
# Copyright (c) 2015-
|
14
|
+
# Copyright (c) 2015-2019, Matthew Wilson and Synesis Software
|
15
15
|
# All rights reserved.
|
16
16
|
#
|
17
17
|
# Redistribution and use in source and binary forms, with or without
|
@@ -76,7 +76,7 @@ module ParameterChecking
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
-
module Constants
|
79
|
+
module Constants # :nodoc:
|
80
80
|
|
81
81
|
RECOGNISED_OPTION_NAMES = %w{
|
82
82
|
|
@@ -99,7 +99,7 @@ module ParameterChecking
|
|
99
99
|
end # module Util_
|
100
100
|
public
|
101
101
|
|
102
|
-
def self.included base
|
102
|
+
def self.included base # :nodoc:
|
103
103
|
|
104
104
|
base.extend self
|
105
105
|
end
|
@@ -107,42 +107,27 @@ module ParameterChecking
|
|
107
107
|
private
|
108
108
|
# Check a given parameter (value=+value+, name=+name+) for type and value
|
109
109
|
#
|
110
|
-
#
|
111
|
-
# @param +name+:: (::String, ::Symbol) the name of the parameter to be
|
112
|
-
# checked
|
113
|
-
# @param +options+:: (::Hash) options that moderate the behaviour
|
110
|
+
# === Signature
|
114
111
|
#
|
115
|
-
#
|
116
|
-
#
|
117
|
-
#
|
118
|
-
#
|
119
|
-
#
|
120
|
-
#
|
121
|
-
#
|
122
|
-
#
|
123
|
-
#
|
124
|
-
#
|
125
|
-
#
|
126
|
-
#
|
127
|
-
#
|
128
|
-
#
|
129
|
-
#
|
130
|
-
#
|
131
|
-
#
|
132
|
-
#
|
133
|
-
#
|
134
|
-
# +empty?+ message and to do so with true, unless +nil+
|
135
|
-
# @option +:nothrow+:: (boolean) causes failure to be indicated by a
|
136
|
-
# +nil+ return rather than a thrown exception
|
137
|
-
# @option +:message+:: (::String) specifies a message to be used in any
|
138
|
-
# thrown exception, which suppresses internal message
|
139
|
-
# preparation
|
140
|
-
# @option +:strip_str_whitespace+:: (boolean) If +value+ is a string (as
|
141
|
-
# determined by responding to +to_str+ message), then it will
|
142
|
-
# be stripped - leading and trailing whitespace removed -
|
143
|
-
# before any processing
|
144
|
-
# @option +:treat_as_option+:: (boolean) If true, the value will be
|
145
|
-
# treated as an option when reporting check failure
|
112
|
+
# * *Parameters:*
|
113
|
+
# - +value+ the parameter whose value and type is to be checked
|
114
|
+
# - +name+ (::String, ::Symbol) the name of the parameter to be checked
|
115
|
+
# - +options+ (::Hash) options that moderate the behaviour
|
116
|
+
#
|
117
|
+
# * *Options:*
|
118
|
+
# - +:allow_nil+ (boolean) The +value+ must not be +nil+ unless this option is true
|
119
|
+
# - +:nil+ an alias for +:allow_nil+
|
120
|
+
# - +:ignore_case+ (boolean) When +:values+ is specified, comparisons of strings, or arrays of strings, will be carried out in a case-insensitive manner
|
121
|
+
# - +:types+ (::Array) An array of types one of which +value+ must be (or must be derived from). One of these types may be an array of types, in which case +value+ may be an array that must consist wholly of those types
|
122
|
+
# - +:type+ (::Class) A single type parameter, used only if +:types+ is not specified
|
123
|
+
# - +:values+ (::Array) an array of values one of which +value+ must be
|
124
|
+
# - +:responds_to+ (::Array) An array of symbols specifying all messages to which the parameter will respond
|
125
|
+
# - +:reject_empty+ (boolean) requires value to respond to +empty?+ message and to do so with false, unless +nil+
|
126
|
+
# - +:require_empty+ (boolean) requires value to respond to +empty?+ message and to do so with true, unless +nil+
|
127
|
+
# - +:nothrow+ (boolean) causes failure to be indicated by a +nil+ return rather than a thrown exception
|
128
|
+
# - +:message+ (::String) specifies a message to be used in any thrown exception, which suppresses internal message preparation
|
129
|
+
# - +:strip_str_whitespace+ (boolean) If +value+ is a string (as determined by responding to +to_str+ message), then it will be stripped - leading and trailing whitespace removed - before any processing
|
130
|
+
# - +:treat_as_option+ (boolean) If true, the value will be treated as an option when reporting check failure
|
146
131
|
#
|
147
132
|
# This method is private, because it should only be used within methods
|
148
133
|
def check_parameter value, name, options = {}, &block
|
@@ -162,15 +147,14 @@ module ParameterChecking
|
|
162
147
|
# Specific form of the +check_parameter()+ that is used to check
|
163
148
|
# options, taking instead the hash and the key
|
164
149
|
#
|
165
|
-
#
|
166
|
-
#
|
167
|
-
#
|
168
|
-
#
|
169
|
-
#
|
170
|
-
#
|
171
|
-
# +:treat_as_option+ option (with the value +true+) is merged in
|
172
|
-
# before calling +check_parameter()+
|
150
|
+
# === Signature
|
151
|
+
#
|
152
|
+
# * *Parameters:*
|
153
|
+
# - +h+ (::Hash) The options hash from which the named element is to be tested. May not be +nil+
|
154
|
+
# - +name+ (::String, ::Symbol, [ ::String, ::Symbol ]) The options key name, or an array of names. May not be +nil+
|
155
|
+
# - +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()+
|
173
156
|
#
|
157
|
+
# * *Options:*
|
174
158
|
def check_option h, name, options = {}, &block
|
175
159
|
|
176
160
|
Util_.check_option h, name, options, &block
|
@@ -179,37 +163,26 @@ module ParameterChecking
|
|
179
163
|
public
|
180
164
|
# Check a given parameter (value=+value+, name=+name+) for type and value
|
181
165
|
#
|
182
|
-
#
|
183
|
-
#
|
184
|
-
#
|
166
|
+
# === Signature
|
167
|
+
#
|
168
|
+
# * *Parameters:*
|
169
|
+
# - +value+ the parameter whose value and type is to be checked
|
170
|
+
# - +name+ the name of the parameter to be checked
|
171
|
+
# - +options+ options
|
185
172
|
#
|
186
|
-
#
|
187
|
-
#
|
188
|
-
#
|
189
|
-
#
|
190
|
-
#
|
191
|
-
#
|
192
|
-
#
|
193
|
-
#
|
194
|
-
#
|
195
|
-
#
|
196
|
-
#
|
197
|
-
#
|
198
|
-
#
|
199
|
-
# must be
|
200
|
-
# @option +:responds_to+:: (::Array) An array of symbols specifying all
|
201
|
-
# messages to which the parameter will respond
|
202
|
-
# @option +:reject_empty+:: (boolean) requires value to respond to +empty?+
|
203
|
-
# message and to do so with false, unless +nil+
|
204
|
-
# @option +:require_empty+:: (boolean) requires value to respond to
|
205
|
-
# +empty?+ message and to do so with true, unless +nil+
|
206
|
-
# @option +:nothrow+:: (boolean) causes failure to be indicated by a +nil+
|
207
|
-
# return rather than a thrown exception
|
208
|
-
# @option +:message+:: (boolean) specifies a message to be used in any
|
209
|
-
# thrown exception, which suppresses internal message
|
210
|
-
# preparation
|
211
|
-
# @option +:treat_as_option+:: (boolean) If true, the value will be
|
212
|
-
# treated as an option when reporting check failure
|
173
|
+
# * *Options:*
|
174
|
+
# - +:allow_nil+ (boolean) The +value+ must not be +nil+ unless this option is true
|
175
|
+
# - +:nil+ an alias for +:allow_nil+
|
176
|
+
# - +:ignore_case+ (boolean) When +:values+ is specified, comparisons of strings, or arrays of strings, will be carried out in a case-insensitive manner
|
177
|
+
# - +:types+ (::Array) An array of types one of which +value+ must be (or must be derived from). One of these types may be an array of types, in which case +value+ may be an array that must consist wholly of those types
|
178
|
+
# - +:type+ (::Class) A single type parameter, used only if +:types+ is not specified
|
179
|
+
# - +:values+ (::Array) an array of values one of which +value+ must be
|
180
|
+
# - +:responds_to+ (::Array) An array of symbols specifying all messages to which the parameter will respond
|
181
|
+
# - +:reject_empty+ (boolean) requires value to respond to +empty?+ message and to do so with false, unless +nil+
|
182
|
+
# - +:require_empty+ (boolean) requires value to respond to +empty?+ message and to do so with true, unless +nil+
|
183
|
+
# - +:nothrow+ (boolean) causes failure to be indicated by a +nil+ return rather than a thrown exception
|
184
|
+
# - +:message+ (boolean) specifies a message to be used in any thrown exception, which suppresses internal message preparation
|
185
|
+
# - +:treat_as_option+ (boolean) If true, the value will be treated as an option when reporting check failure
|
213
186
|
#
|
214
187
|
def self.check_parameter value, name, options = {}, &block
|
215
188
|
|