xqsr3 0.32.2 → 0.36.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.
Files changed (59) hide show
  1. checksums.yaml +5 -5
  2. data/lib/xqsr3/all_extensions.rb +6 -0
  3. data/lib/xqsr3/array_utilities.rb +10 -0
  4. data/lib/xqsr3/array_utilities/join_with_or.rb +7 -14
  5. data/lib/xqsr3/command_line_utilities.rb +10 -0
  6. data/lib/xqsr3/command_line_utilities/map_option_string.rb +21 -8
  7. data/lib/xqsr3/containers.rb +11 -0
  8. data/lib/xqsr3/containers/frequency_map.rb +19 -2
  9. data/lib/xqsr3/containers/multi_map.rb +316 -27
  10. data/lib/xqsr3/conversion.rb +11 -0
  11. data/lib/xqsr3/conversion/bool_parser.rb +11 -14
  12. data/lib/xqsr3/conversion/integer_parser.rb +10 -16
  13. data/lib/xqsr3/diagnostics.rb +11 -0
  14. data/lib/xqsr3/diagnostics/exception_utilities.rb +2 -2
  15. data/lib/xqsr3/diagnostics/exceptions/with_cause.rb +15 -7
  16. data/lib/xqsr3/diagnostics/inspect_builder.rb +16 -16
  17. data/lib/xqsr3/doc_.rb +138 -9
  18. data/lib/xqsr3/extensions.rb +13 -0
  19. data/lib/xqsr3/extensions/array.rb +3 -0
  20. data/lib/xqsr3/extensions/array/join_with_or.rb +6 -0
  21. data/lib/xqsr3/extensions/enumerable/collect_with_index.rb +5 -4
  22. data/lib/xqsr3/extensions/enumerable/detect_map.rb +6 -7
  23. data/lib/xqsr3/extensions/hash.rb +5 -0
  24. data/lib/xqsr3/extensions/hash/has_match.rb +7 -0
  25. data/lib/xqsr3/extensions/hash/match.rb +7 -0
  26. data/lib/xqsr3/extensions/hash/slice.rb +22 -0
  27. data/lib/xqsr3/extensions/io/writelines.rb +38 -6
  28. data/lib/xqsr3/extensions/kernel/integer.rb +6 -13
  29. data/lib/xqsr3/extensions/string/to_bool.rb +4 -0
  30. data/lib/xqsr3/extensions/test/unit/assert_eql.rb +1 -0
  31. data/lib/xqsr3/extensions/test/unit/assert_false.rb +1 -0
  32. data/lib/xqsr3/extensions/test/unit/assert_not.rb +1 -0
  33. data/lib/xqsr3/extensions/test/unit/assert_not_eql.rb +1 -0
  34. data/lib/xqsr3/extensions/test/unit/assert_raise_with_message.rb +25 -4
  35. data/lib/xqsr3/extensions/test/unit/assert_subclass_of.rb +1 -0
  36. data/lib/xqsr3/extensions/test/unit/assert_superclass_of.rb +1 -0
  37. data/lib/xqsr3/extensions/test/unit/assert_true.rb +1 -0
  38. data/lib/xqsr3/extensions/test/unit/assert_type_has_instance_methods.rb +3 -12
  39. data/lib/xqsr3/hash_utilities.rb +11 -0
  40. data/lib/xqsr3/hash_utilities/deep_transform.rb +2 -2
  41. data/lib/xqsr3/hash_utilities/key_matching.rb +6 -4
  42. data/lib/xqsr3/internal_/test_unit_version_.rb +30 -4
  43. data/lib/xqsr3/io/writelines.rb +55 -19
  44. data/lib/xqsr3/quality.rb +8 -1
  45. data/lib/xqsr3/quality/parameter_checking.rb +52 -78
  46. data/lib/xqsr3/string_utilities.rb +16 -0
  47. data/lib/xqsr3/string_utilities/ends_with.rb +16 -7
  48. data/lib/xqsr3/string_utilities/nil_if_empty.rb +8 -4
  49. data/lib/xqsr3/string_utilities/nil_if_whitespace.rb +9 -4
  50. data/lib/xqsr3/string_utilities/quote_if.rb +12 -14
  51. data/lib/xqsr3/string_utilities/starts_with.rb +23 -5
  52. data/lib/xqsr3/string_utilities/to_symbol.rb +24 -5
  53. data/lib/xqsr3/string_utilities/truncate.rb +20 -4
  54. data/lib/xqsr3/version.rb +3 -2
  55. data/test/unit/containers/tc_multi_map.rb +174 -16
  56. data/test/unit/extensions/hash/tc_hash.rb +6 -0
  57. data/test/unit/extensions/hash/tc_slice.rb +31 -0
  58. data/test/unit/extensions/io/tc_writelines.rb +36 -0
  59. metadata +16 -3
@@ -6,13 +6,13 @@
6
6
  # module
7
7
  #
8
8
  # Created: 15th November 2017
9
- # Updated: 15th November 2017
9
+ # Updated: 15th April 2019
10
10
  #
11
11
  # Home: http://github.com/synesissoftware/xqsr3
12
12
  #
13
13
  # Author: Matthew Wilson
14
14
  #
15
- # Copyright (c) 2017, Matthew Wilson and Synesis Software
15
+ # Copyright (c) 2017-2019, Matthew Wilson and Synesis Software
16
16
  # All rights reserved.
17
17
  #
18
18
  # Redistribution and use in source and binary forms, with or without
@@ -56,10 +56,12 @@ require 'xqsr3/quality/parameter_checking'
56
56
  module Xqsr3
57
57
  module HashUtilities
58
58
 
59
+ # +include+-able module that provides ::has_match?, #has_match?, ::match,
60
+ # and #match methods
59
61
  module KeyMatching
60
62
 
61
63
  private
62
- def self.do_match_ h, re, **options
64
+ def self.do_match_ h, re, **options # :nodoc:
63
65
 
64
66
  ::Xqsr3::Quality::ParameterChecking.check_parameter h, 'h', responds_to: [ :[], :has_key?, :each ]
65
67
 
@@ -97,7 +99,7 @@ module KeyMatching
97
99
  nil
98
100
  end
99
101
 
100
- def self.do_has_match_ h, re, **options
102
+ def self.do_has_match_ h, re, **options # :nodoc:
101
103
 
102
104
  ::Xqsr3::Quality::ParameterChecking.check_parameter h, 'h', responds_to: [ :[], :has_key?, :each ]
103
105
 
@@ -3,30 +3,47 @@
3
3
  # Test::Unit module
4
4
 
5
5
  require 'test/unit'
6
+
6
7
  begin
7
8
 
8
9
  require 'test/unit/version'
9
10
 
11
+ # :stopdoc:
12
+ # @!visibility private
10
13
  module Xqsr3
11
- module Internal_
12
- module TestUnitVersion_
14
+ # @!visibility private
15
+ module Internal_ # :nodoc:
16
+ # @!visibility private
17
+ module TestUnitVersion_ # :nodoc:
13
18
 
19
+ # @!visibility private
14
20
  TEST_UNIT_VERSION_ = Test::Unit::VERSION # :nodoc:
15
21
  end # module TestUnitVersion_
16
22
  end # module Internal_
17
23
  end # module Xqsr3
24
+
25
+ # :startdoc:
18
26
  rescue LoadError
19
27
 
28
+ # :stopdoc:
29
+ # @!visibility private
20
30
  module Xqsr3
21
- module Internal_
22
- module TestUnitVersion_
31
+ # @!visibility private
32
+ module Internal_ # :nodoc:
33
+ # @!visibility private
34
+ module TestUnitVersion_ # :nodoc:
23
35
 
36
+ # @!visibility private
24
37
  TEST_UNIT_VERSION_ = :not_found # :nodoc:
25
38
  end # module TestUnitVersion_
26
39
  end # module Internal_
27
40
  end # module Xqsr3
41
+
42
+ # :startdoc:
28
43
  end
29
44
 
45
+ # :stopdoc:
46
+
30
47
  module Xqsr3
31
48
  module Internal_ # :nodoc:
32
49
  module TestUnitVersion_ # :nodoc:
@@ -47,6 +64,7 @@ module TestUnitVersion_ # :nodoc:
47
64
  TEST_UNIT_VERSION_PATCH_ = TEST_UNIT_VERSION_PARTS_[2] # :nodoc:
48
65
  end
49
66
 
67
+ # @!visibility private
50
68
  def self.less_ a1, a2 # :nodoc:
51
69
 
52
70
  n_common = a1.size < a2.size ? a1.size : a2.size
@@ -79,6 +97,7 @@ module TestUnitVersion_ # :nodoc:
79
97
  end
80
98
  end
81
99
 
100
+ # @!visibility private
82
101
  def self.is_major_at_least? j # :nodoc:
83
102
 
84
103
  return unless TEST_UNIT_VERSION_MAJOR_
@@ -86,6 +105,7 @@ module TestUnitVersion_ # :nodoc:
86
105
  return j >= TEST_UNIT_VERSION_MAJOR_
87
106
  end
88
107
 
108
+ # @!visibility private
89
109
  def self.is_minor_at_least? n # :nodoc:
90
110
 
91
111
  return unless TEST_UNIT_VERSION_MINOR_
@@ -93,6 +113,7 @@ module TestUnitVersion_ # :nodoc:
93
113
  return n >= TEST_UNIT_VERSION_MINOR_
94
114
  end
95
115
 
116
+ # @!visibility private
96
117
  def self.is_at_least? v # :nodoc:
97
118
 
98
119
  v = v.split(/\./).collect { |n| n.to_i } if String === v
@@ -100,6 +121,7 @@ module TestUnitVersion_ # :nodoc:
100
121
  return !less_(TEST_UNIT_VERSION_PARTS_, v)
101
122
  end
102
123
 
124
+ # @!visibility private
103
125
  def self.is_less? v # :nodoc:
104
126
 
105
127
  v = v.split(/\./).collect { |n| n.to_i } if String === v
@@ -111,4 +133,8 @@ end # module TestUnitVersion_
111
133
  end # module Internal_
112
134
  end # module Xqsr3
113
135
 
136
+ # :startdoc:
137
+
138
+ # ############################## end of file ############################# #
139
+
114
140
 
@@ -5,7 +5,7 @@
5
5
  # Purpose: Adds a writelines() method to the IO module
6
6
  #
7
7
  # Created: 13th April 2007
8
- # Updated: 12th April 2019
8
+ # Updated: 31st October 2019
9
9
  #
10
10
  # Home: http://github.com/synesissoftware/xqsr3
11
11
  #
@@ -56,27 +56,58 @@ module Xqsr3
56
56
  module IO
57
57
 
58
58
  private
59
- module WriteLine_Constants_ #:nodoc:
59
+ # @!visibility private
60
+ module WriteLine_Constants_ #:nodoc: all
60
61
 
61
62
  NUMBER_OF_LINES_TO_EXAMINE = 20
62
-
63
63
  end # module WriteLine_Constants_
64
64
 
65
65
  private
66
66
 
67
- def self.write_to_target_ target, contents, line_separator, column_separator
68
- $stderr.puts "#{self.class}.write_to_target_(target(#{target.class})='#{target}', contents(#{contents.class})='#{contents}', line_separator(#{line_separator.class})='#{line_separator}', column_separator=(#{column_separator.class})='#{column_separator}')" if $DEBUG
69
- if contents.instance_of? ::Hash
67
+ # @!visibility private
68
+ def self.write_to_target_ target, contents, line_separator, column_separator, no_last_eol # :nodoc:
69
+
70
+ $stderr.puts "#{self.class}.write_to_target_(target(#{target.class})='#{target}', contents(#{contents.class})='#{contents}', line_separator(#{line_separator.class})='#{line_separator}', column_separator(#{column_separator.class})='#{column_separator}', no_last_eol(#{no_last_eol.class})=#{no_last_eol})" if $DEBUG
71
+
72
+ if no_last_eol
73
+
74
+ first = true
75
+
76
+ if contents.instance_of? ::Hash
77
+
78
+ contents.each do |k, v|
79
+
80
+ target << line_separator unless first
81
+
82
+ target << "#{k}#{column_separator}#{v}"
83
+
84
+ first = false
85
+ end
86
+ else
70
87
 
71
- contents.each do |k, v|
88
+ contents.each do |element|
72
89
 
73
- target << "#{k}#{column_separator}#{v}#{line_separator}"
90
+ target << line_separator unless first
91
+
92
+ target << "#{element}"
93
+
94
+ first = false
95
+ end
74
96
  end
75
97
  else
76
98
 
77
- contents.each do |element|
99
+ if contents.instance_of? ::Hash
78
100
 
79
- target << "#{element}#{line_separator}"
101
+ contents.each do |k, v|
102
+
103
+ target << "#{k}#{column_separator}#{v}#{line_separator}"
104
+ end
105
+ else
106
+
107
+ contents.each do |element|
108
+
109
+ target << "#{element}#{line_separator}"
110
+ end
80
111
  end
81
112
  end
82
113
 
@@ -87,7 +118,9 @@ $stderr.puts "#{self.class}.write_to_target_(target(#{target.class})='#{target}'
87
118
  # embedded eol, in which case the empty string is returned to force no
88
119
  # (additional) separator will be used. Otherwise, it returns "\n" to
89
120
  # ensure that that is used.
90
- def self.deduce_line_separator_ contents, eol_lookahead_limit
121
+ #
122
+ # @!visibility private
123
+ def self.deduce_line_separator_ contents, eol_lookahead_limit # :nodoc:
91
124
 
92
125
  if contents.instance_of? ::Hash
93
126
 
@@ -126,14 +159,15 @@ $stderr.puts "#{self.class}.write_to_target_(target(#{target.class})='#{target}'
126
159
  # === Signature
127
160
  #
128
161
  # * *Parameters:*
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
162
+ # - +target+ The target of the write, which may be a string containing the path or a stream instance that supports write
163
+ # - +contents+ The contents to be write, which may be a +Hash+, or an +Array+, or a +String+ containing delimited fields
164
+ # - +options+ An options hash, containing any of the following options
132
165
  #
133
166
  # * *Options:*
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+).
167
+ # - +:column_separator+ {optional} The column separator, to be applied between each field in the case where +contents+ is a +Hash+.
168
+ # - +: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.
169
+ # - +: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+).
170
+ # - +:no_last_eol+ {optional} If present and _truey_, causes suppression of the addition of the +:line_separator+ on the last line.
137
171
  #
138
172
  # === Return
139
173
  #
@@ -165,6 +199,7 @@ $stderr.puts "#{self.class}.write_to_target_(target(#{target.class})='#{target}'
165
199
  options ||= {}
166
200
  eol_lookahead_limit = options[:eol_lookahead_limit] || WriteLine_Constants_::NUMBER_OF_LINES_TO_EXAMINE
167
201
  column_separator = options[:column_separator] || ''
202
+ no_last_eol = options[:no_last_eol] || false
168
203
  line_separator = nil
169
204
  line_separator ||= options[:line_separator]
170
205
  line_separator ||= self.deduce_line_separator_(contents, eol_lookahead_limit) unless !eol_lookahead_limit.kind_of?(::Integer) || 0 == eol_lookahead_limit
@@ -181,11 +216,11 @@ $stderr.puts "#{self.class}.write_to_target_(target(#{target.class})='#{target}'
181
216
 
182
217
  File.open(target, "w") do |io|
183
218
 
184
- self.write_to_target_ io, contents, line_separator, column_separator
219
+ self.write_to_target_ io, contents, line_separator, column_separator, no_last_eol
185
220
  end
186
221
  else
187
222
 
188
- self.write_to_target_ target, contents, line_separator, column_separator
223
+ self.write_to_target_ target, contents, line_separator, column_separator, no_last_eol
189
224
  end
190
225
  end # writelines
191
226
  end # module IO
@@ -193,3 +228,4 @@ end # module Xqsr3
193
228
 
194
229
  # ############################## end of file ############################# #
195
230
 
231
+
@@ -1,3 +1,10 @@
1
1
 
2
- require 'xqsr3/quality/parameter_checking'
2
+ %w{
3
+
4
+ parameter_checking
5
+ }.each do |name|
6
+
7
+ require File.join(File.dirname(__FILE__), 'quality', name)
8
+ end
9
+
3
10
 
@@ -5,13 +5,13 @@
5
5
  # Purpose: Definition of the ParameterChecking module
6
6
  #
7
7
  # Created: 12th February 2015
8
- # Updated: 18th October 2018
8
+ # Updated: 15th 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-2018, Matthew Wilson and Synesis Software
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
@@ -59,7 +59,8 @@ module Quality
59
59
  module ParameterChecking
60
60
 
61
61
  private
62
- module Util_ # :nodoc:
62
+ # @!visibility private
63
+ module Util_ # :nodoc: all
63
64
 
64
65
  def self.join_with_or a
65
66
 
@@ -76,7 +77,7 @@ module ParameterChecking
76
77
  end
77
78
  end
78
79
 
79
- module Constants
80
+ module Constants # :nodoc:
80
81
 
81
82
  RECOGNISED_OPTION_NAMES = %w{
82
83
 
@@ -99,7 +100,7 @@ module ParameterChecking
99
100
  end # module Util_
100
101
  public
101
102
 
102
- def self.included base
103
+ def self.included base # :nodoc:
103
104
 
104
105
  base.extend self
105
106
  end
@@ -107,42 +108,27 @@ module ParameterChecking
107
108
  private
108
109
  # Check a given parameter (value=+value+, name=+name+) for type and value
109
110
  #
110
- # @param +value+:: the parameter whose value and type is to be checked
111
- # @param +name+:: (::String, ::Symbol) the name of the parameter to be
112
- # checked
113
- # @param +options+:: (::Hash) options that moderate the behaviour
111
+ # === Signature
114
112
  #
115
- # @option +:allow_nil+:: (boolean) The +value+ must not be +nil+ unless
116
- # this option is true
117
- # @option +:nil+:: an alias for +:allow_nil+
118
- # @option +:ignore_case+:: (boolean) When +:values+ is specified,
119
- # comparisons of strings, or arrays of strings, will be carried out in
120
- # a case-insensitive manner
121
- # @option +:types+:: (::Array) An array of types one of which +value+
122
- # must be (or must be derived from). One of these types may be
123
- # an array of types, in which case +value+ may be an array that
124
- # must consist wholly of those types
125
- # @option +:type+:: (::Class) A single type parameter, used only if
126
- # +:types+ is not specified
127
- # @option +:values+:: (::Array) an array of values one of which +value+
128
- # must be
129
- # @option +:responds_to+:: (::Array) An array of symbols specifying all
130
- # messages to which the parameter will respond
131
- # @option +:reject_empty+:: (boolean) requires value to respond to
132
- # +empty?+ message and to do so with false, unless +nil+
133
- # @option +:require_empty+:: (boolean) requires value to respond to
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
113
+ # * *Parameters:*
114
+ # - +value+ the parameter whose value and type is to be checked
115
+ # - +name+ (::String, ::Symbol) the name of the parameter to be checked
116
+ # - +options+ (::Hash) options that moderate the behaviour
117
+ #
118
+ # * *Options:*
119
+ # - +:allow_nil+ (boolean) The +value+ must not be +nil+ unless this option is true
120
+ # - +:nil+ an alias for +:allow_nil+
121
+ # - +:ignore_case+ (boolean) When +:values+ is specified, comparisons of strings, or arrays of strings, will be carried out in a case-insensitive manner
122
+ # - +: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
123
+ # - +:type+ (::Class) A single type parameter, used only if +:types+ is not specified
124
+ # - +:values+ (::Array) an array of values one of which +value+ must be
125
+ # - +:responds_to+ (::Array) An array of symbols specifying all messages to which the parameter will respond
126
+ # - +:reject_empty+ (boolean) requires value to respond to +empty?+ message and to do so with false, unless +nil+
127
+ # - +:require_empty+ (boolean) requires value to respond to +empty?+ message and to do so with true, unless +nil+
128
+ # - +:nothrow+ (boolean) causes failure to be indicated by a +nil+ return rather than a thrown exception
129
+ # - +:message+ (::String) specifies a message to be used in any thrown exception, which suppresses internal message preparation
130
+ # - +: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
131
+ # - +:treat_as_option+ (boolean) If true, the value will be treated as an option when reporting check failure
146
132
  #
147
133
  # This method is private, because it should only be used within methods
148
134
  def check_parameter value, name, options = {}, &block
@@ -162,15 +148,14 @@ module ParameterChecking
162
148
  # Specific form of the +check_parameter()+ that is used to check
163
149
  # options, taking instead the hash and the key
164
150
  #
165
- # @param +h+:: (::Hash) The options hash from which the named element is
166
- # to be tested. May not be +nil+
167
- # @param +name+:: (::String, ::Symbol, [ ::String, ::Symbol ]) The
168
- # options key name, or an array of names. May not be +nil+
169
- # @param +options+:: (::Hash) options that moderate the behaviour in the
170
- # same way as for +check_parameter()+ except that the
171
- # +:treat_as_option+ option (with the value +true+) is merged in
172
- # before calling +check_parameter()+
151
+ # === Signature
152
+ #
153
+ # * *Parameters:*
154
+ # - +h+ (::Hash) The options hash from which the named element is to be tested. May not be +nil+
155
+ # - +name+ (::String, ::Symbol, [ ::String, ::Symbol ]) The options key name, or an array of names. May not be +nil+
156
+ # - +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
157
  #
158
+ # * *Options:*
174
159
  def check_option h, name, options = {}, &block
175
160
 
176
161
  Util_.check_option h, name, options, &block
@@ -179,37 +164,26 @@ module ParameterChecking
179
164
  public
180
165
  # Check a given parameter (value=+value+, name=+name+) for type and value
181
166
  #
182
- # @param +value+:: the parameter whose value and type is to be checked
183
- # @param +name+:: the name of the parameter to be checked
184
- # @param +options+:: options
167
+ # === Signature
168
+ #
169
+ # * *Parameters:*
170
+ # - +value+ the parameter whose value and type is to be checked
171
+ # - +name+ the name of the parameter to be checked
172
+ # - +options+ options
185
173
  #
186
- # @option +:allow_nil+:: (boolean) The +value+ must not be +nil+ unless
187
- # this option is true
188
- # @option +:nil+:: an alias for +:allow_nil+
189
- # @option +:ignore_case+:: (boolean) When +:values+ is specified,
190
- # comparisons of strings, or arrays of strings, will be carried out in
191
- # a case-insensitive manner
192
- # @option +:types+:: (::Array) An array of types one of which +value+ must
193
- # be (or must be derived from). One of these types may be an
194
- # array of types, in which case +value+ may be an array that
195
- # must consist wholly of those types
196
- # @option +:type+:: (::Class) A single type parameter, used only if
197
- # +:types+ is not specified
198
- # @option +:values+:: (::Array) an array of values one of which +value+
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
174
+ # * *Options:*
175
+ # - +:allow_nil+ (boolean) The +value+ must not be +nil+ unless this option is true
176
+ # - +:nil+ an alias for +:allow_nil+
177
+ # - +:ignore_case+ (boolean) When +:values+ is specified, comparisons of strings, or arrays of strings, will be carried out in a case-insensitive manner
178
+ # - +: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
179
+ # - +:type+ (::Class) A single type parameter, used only if +:types+ is not specified
180
+ # - +:values+ (::Array) an array of values one of which +value+ must be
181
+ # - +:responds_to+ (::Array) An array of symbols specifying all messages to which the parameter will respond
182
+ # - +:reject_empty+ (boolean) requires value to respond to +empty?+ message and to do so with false, unless +nil+
183
+ # - +:require_empty+ (boolean) requires value to respond to +empty?+ message and to do so with true, unless +nil+
184
+ # - +:nothrow+ (boolean) causes failure to be indicated by a +nil+ return rather than a thrown exception
185
+ # - +:message+ (boolean) specifies a message to be used in any thrown exception, which suppresses internal message preparation
186
+ # - +:treat_as_option+ (boolean) If true, the value will be treated as an option when reporting check failure
213
187
  #
214
188
  def self.check_parameter value, name, options = {}, &block
215
189