xqsr3 0.32.2 → 0.32.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|