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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/lib/xqsr3/array_utilities/join_with_or.rb +7 -14
  3. data/lib/xqsr3/command_line_utilities/map_option_string.rb +19 -7
  4. data/lib/xqsr3/containers/frequency_map.rb +1 -1
  5. data/lib/xqsr3/containers/multi_map.rb +28 -0
  6. data/lib/xqsr3/conversion/bool_parser.rb +11 -14
  7. data/lib/xqsr3/conversion/integer_parser.rb +7 -14
  8. data/lib/xqsr3/diagnostics/exception_utilities.rb +2 -2
  9. data/lib/xqsr3/diagnostics/exceptions/with_cause.rb +15 -7
  10. data/lib/xqsr3/diagnostics/inspect_builder.rb +11 -15
  11. data/lib/xqsr3/doc_.rb +138 -9
  12. data/lib/xqsr3/extensions/array/join_with_or.rb +6 -0
  13. data/lib/xqsr3/extensions/enumerable/collect_with_index.rb +5 -4
  14. data/lib/xqsr3/extensions/enumerable/detect_map.rb +6 -7
  15. data/lib/xqsr3/extensions/hash/has_match.rb +7 -0
  16. data/lib/xqsr3/extensions/hash/match.rb +7 -0
  17. data/lib/xqsr3/extensions/kernel/integer.rb +6 -13
  18. data/lib/xqsr3/extensions/string/to_bool.rb +4 -0
  19. data/lib/xqsr3/extensions/test/unit/assert_eql.rb +1 -0
  20. data/lib/xqsr3/extensions/test/unit/assert_false.rb +1 -0
  21. data/lib/xqsr3/extensions/test/unit/assert_not.rb +1 -0
  22. data/lib/xqsr3/extensions/test/unit/assert_not_eql.rb +1 -0
  23. data/lib/xqsr3/extensions/test/unit/assert_raise_with_message.rb +5 -2
  24. data/lib/xqsr3/extensions/test/unit/assert_subclass_of.rb +1 -0
  25. data/lib/xqsr3/extensions/test/unit/assert_superclass_of.rb +1 -0
  26. data/lib/xqsr3/extensions/test/unit/assert_true.rb +1 -0
  27. data/lib/xqsr3/extensions/test/unit/assert_type_has_instance_methods.rb +3 -12
  28. data/lib/xqsr3/hash_utilities/deep_transform.rb +2 -2
  29. data/lib/xqsr3/internal_/test_unit_version_.rb +4 -4
  30. data/lib/xqsr3/io/writelines.rb +6 -6
  31. data/lib/xqsr3/quality/parameter_checking.rb +50 -77
  32. data/lib/xqsr3/string_utilities/ends_with.rb +14 -6
  33. data/lib/xqsr3/string_utilities/nil_if_empty.rb +6 -3
  34. data/lib/xqsr3/string_utilities/nil_if_whitespace.rb +7 -3
  35. data/lib/xqsr3/string_utilities/quote_if.rb +10 -13
  36. data/lib/xqsr3/string_utilities/starts_with.rb +22 -5
  37. data/lib/xqsr3/string_utilities/to_symbol.rb +23 -5
  38. data/lib/xqsr3/string_utilities/truncate.rb +19 -4
  39. data/lib/xqsr3/version.rb +1 -1
  40. metadata +1 -1
@@ -54,12 +54,14 @@
54
54
  module Xqsr3
55
55
  module StringUtilities
56
56
 
57
+ # +include+-able module that provides ::string_ends_with? and #ends_with?
58
+ # methods
57
59
  module EndsWith
58
60
 
59
61
  private
60
- module EndsWith_Helper_ #:nodoc:
62
+ module EndsWith_Helper_ # :nodoc:
61
63
 
62
- def self.string_ends_with_helper_ s, prefix
64
+ def self.string_ends_with_helper_ s, prefix # :nodoc:
63
65
 
64
66
  if prefix.nil? || prefix.empty?
65
67
 
@@ -78,7 +80,7 @@ module EndsWith
78
80
  nil
79
81
  end
80
82
 
81
- def self.string_ends_with_array_ s, args
83
+ def self.string_ends_with_array_ s, args # :nodoc:
82
84
 
83
85
  return '' if args.empty?
84
86
 
@@ -115,14 +117,20 @@ module EndsWith
115
117
  # === Signature
116
118
  #
117
119
  # * *Parameters:*
118
- #
119
- # * *Required parameters*:
120
- # - +s+:: [String] The string to be evaluated
120
+ # - +s+ (String) The string to be evaluated
121
+ # - +args+ 0+ arguments against which +s+ will be evaluated
121
122
  def self.string_ends_with? s, *args
122
123
 
123
124
  EndsWith_Helper_.string_ends_with_array_ s, args
124
125
  end
125
126
 
127
+ # Reports on whether the instance ends with a given prefix or set of
128
+ # prefixes (+args+)
129
+ #
130
+ # === Signature
131
+ #
132
+ # * *Parameters:*
133
+ # - +args+ 0+ arguments against which the instance will be evaluated
126
134
  def ends_with? *args
127
135
 
128
136
  EndsWith_Helper_.string_ends_with_array_ self, args
@@ -54,12 +54,14 @@
54
54
  module Xqsr3
55
55
  module StringUtilities
56
56
 
57
+ # +include+-able module that provides ::string_nil_if_empty and
58
+ # #nil_if_empty methods
57
59
  module NilIfEmpty
58
60
 
59
61
  private
60
- module NilIfEmpty_Helper_ #:nodoc:
62
+ module NilIfEmpty_Helper_ # :nodoc:
61
63
 
62
- def self.string_nil_if_empty_array_ s
64
+ def self.string_nil_if_empty_array_ s # :nodoc:
63
65
 
64
66
  return s if s && !s.empty?
65
67
 
@@ -76,12 +78,13 @@ module NilIfEmpty
76
78
  # * *Parameters:*
77
79
  #
78
80
  # * *Required parameters*:
79
- # - +s+:: [String] The string to be evaluated
81
+ # - +s+ (String) The string to be evaluated
80
82
  def self.string_nil_if_empty s
81
83
 
82
84
  NilIfEmpty_Helper_.string_nil_if_empty_array_ s
83
85
  end
84
86
 
87
+ # Returns +nil+ if the instance is empty, otherwise returning self
85
88
  def nil_if_empty
86
89
 
87
90
  NilIfEmpty_Helper_.string_nil_if_empty_array_ self
@@ -54,12 +54,14 @@
54
54
  module Xqsr3
55
55
  module StringUtilities
56
56
 
57
+ # +include+-able module that provides ::string_nil_if_whitespace and
58
+ # #nil_if_whitespace methods
57
59
  module NilIfWhitespace
58
60
 
59
61
  private
60
- module NilIfWhitespace_Helper_ #:nodoc:
62
+ module NilIfWhitespace_Helper_ # :nodoc:
61
63
 
62
- def self.string_nil_if_whitespace_array_ s
64
+ def self.string_nil_if_whitespace_array_ s # :nodoc:
63
65
 
64
66
  return nil if s.strip.empty?
65
67
 
@@ -76,12 +78,14 @@ module NilIfWhitespace
76
78
  # * *Parameters:*
77
79
  #
78
80
  # * *Required parameters*:
79
- # - +s+:: [String] The string to be evaluated
81
+ # - +s+ (String) The string to be evaluated
80
82
  def self.string_nil_if_whitespace s
81
83
 
82
84
  NilIfWhitespace_Helper_.string_nil_if_whitespace_array_ s
83
85
  end
84
86
 
87
+ # Returns +nil+ if the instance is empty or contains only whitespace,
88
+ # otherwise returning self
85
89
  def nil_if_whitespace
86
90
 
87
91
  NilIfWhitespace_Helper_.string_nil_if_whitespace_array_ self
@@ -54,12 +54,13 @@
54
54
  module Xqsr3
55
55
  module StringUtilities
56
56
 
57
+ # +include+-able module that provides ::quote_if and #quote_if methods
57
58
  module QuoteIf
58
59
 
59
60
  private
60
- module QuoteIf_Helper_ #:nodoc:
61
+ module QuoteIf_Helper_ # :nodoc:
61
62
 
62
- def self.string_quote_if_array_ s, options
63
+ def self.string_quote_if_array_ s, options # :nodoc:
63
64
 
64
65
  s = s.to_s unless String === s
65
66
 
@@ -95,27 +96,23 @@ module QuoteIf
95
96
  # * *Parameters:*
96
97
  #
97
98
  # * *Required parameters*:
98
- # - +s+:: [String] The string to be evaluated
99
+ # - +s+ (String) The string to be evaluated
99
100
  #
100
101
  # * *Options parameters*:
101
- # - +options+:: [Hash] Options that control the behaviour of the
102
- # method
102
+ # - +options+ (Hash) Options that control the behaviour of the method
103
103
  #
104
104
  # * *Options:*
105
105
  #
106
- # - +:quotes+:: [String, Array] A string that is used as the opening
107
- # and closing quotes, or an array whose first two elements are
108
- # used as the opening and closing quotes. Defaults to '"'
109
- # - +:quotables+:: [String, Array, Regexp] A string representing the
110
- # quotable character, or an array containing the quotable
111
- # characters, or a regular expression that determines by match
112
- # whether the string should be quoted. Defaults to the regular
113
- # expression /\s/
106
+ # - +:quotes+ (String, Array) A string that is used as the opening and closing quotes, or an array whose first two elements are used as the opening and closing quotes. Defaults to +'"'+
107
+ # - +:quotables+ (String, Array, Regexp) A string representing the quotable character, or an array containing the quotable characters, or a regular expression that determines by match whether the string should be quoted. Defaults to the regular expression +/\s/+
114
108
  def self.quote_if s, **options
115
109
 
116
110
  QuoteIf_Helper_.string_quote_if_array_ s, options
117
111
  end
118
112
 
113
+ # Converts the instance to a quoted form if necessary
114
+ #
115
+ # See Xqsr3::StringUtilities::QuoteIf::quite_if() for options
119
116
  def quote_if **options
120
117
 
121
118
  QuoteIf_Helper_.string_quote_if_array_ self, options
@@ -6,13 +6,13 @@
6
6
  # module
7
7
  #
8
8
  # Created: 13th April 2016
9
- # Updated: 10th June 2016
9
+ # Updated: 12th April 2019
10
10
  #
11
11
  # Home: http://github.com/synesissoftware/xqsr3
12
12
  #
13
13
  # Author: Matthew Wilson
14
14
  #
15
- # Copyright (c) 2016, Matthew Wilson and Synesis Software
15
+ # Copyright (c) 2016-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
@@ -54,12 +54,14 @@
54
54
  module Xqsr3
55
55
  module StringUtilities
56
56
 
57
+ # +include+-able module that provides ::string_starts_with? and #starts_with?
58
+ # methods
57
59
  module StartsWith
58
60
 
59
61
  private
60
- module StartsWith_Helper_ #:nodoc:
62
+ module StartsWith_Helper_ # :nodoc:
61
63
 
62
- def self.string_starts_with_helper_ s, prefix
64
+ def self.string_starts_with_helper_ s, prefix # :nodoc:
63
65
 
64
66
  if prefix.nil? || prefix.empty?
65
67
 
@@ -78,7 +80,7 @@ module StartsWith
78
80
  nil
79
81
  end
80
82
 
81
- def self.string_starts_with_array_ s, args
83
+ def self.string_starts_with_array_ s, args # :nodoc:
82
84
 
83
85
  return '' if args.empty?
84
86
 
@@ -109,11 +111,26 @@ module StartsWith
109
111
  end
110
112
  public
111
113
 
114
+ # Reports on whether a string +s+ starts with a given prefix or set of
115
+ # prefixes (+args+)
116
+ #
117
+ # === Signature
118
+ #
119
+ # * *Parameters:*
120
+ # - +s+ (String) The string to be evaluated
121
+ # - +args+ 0+ arguments against which +s+ will be evaluated
112
122
  def self.string_starts_with? s, *args
113
123
 
114
124
  StartsWith_Helper_.string_starts_with_array_ s, args
115
125
  end
116
126
 
127
+ # Reports on whether the instance starts with a given prefix or set of
128
+ # prefixes (+args+)
129
+ #
130
+ # === Signature
131
+ #
132
+ # * *Parameters:*
133
+ # - +args+ 0+ arguments against which the instance will be evaluated
117
134
  def starts_with? *args
118
135
 
119
136
  StartsWith_Helper_.string_starts_with_array_ self, args
@@ -6,13 +6,13 @@
6
6
  # module
7
7
  #
8
8
  # Created: 14th April 2016
9
- # Updated: 10th June 2016
9
+ # Updated: 12th April 2019
10
10
  #
11
11
  # Home: http://github.com/synesissoftware/xqsr3
12
12
  #
13
13
  # Author: Matthew Wilson
14
14
  #
15
- # Copyright (c) 2016, Matthew Wilson and Synesis Software
15
+ # Copyright (c) 2016-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
@@ -59,15 +59,15 @@ module StringUtilities
59
59
  module ToSymbol
60
60
 
61
61
  private
62
- module ToSymbol_Helper_ #:nodoc:
62
+ module ToSymbol_Helper_ # :nodoc:
63
63
 
64
- module Constants #:nodoc:
64
+ module Constants # :nodoc:
65
65
 
66
66
  SymbolCharacters0 = 'abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ'
67
67
  SymbolCharactersN = 'abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789'
68
68
  end
69
69
 
70
- def self.string_to_symbol_with_options_ s, options
70
+ def self.string_to_symbol_with_options_ s, options # :nodoc:
71
71
 
72
72
  case s
73
73
  when ::String
@@ -127,11 +127,29 @@ module ToSymbol
127
127
  end
128
128
  public
129
129
 
130
+ # Converts the given string +s+ to a symbol according to the given
131
+ # +options+
132
+ #
133
+ # === Signature
134
+ #
135
+ # * *Parameters:*
136
+ # - +s+ (String) The string to convert
137
+ # - +options+ (Hash) Options hash
138
+ #
139
+ # * *Options:*
140
+ # - +:reject_hyphens+ (boolean)
141
+ # - +:reject_spaces+ (boolean)
142
+ # - +:reject_tabs+ (boolean)
143
+ # - +:reject_whitespace+ (boolean)
144
+ # - +:transform_characters+ (boolean)
130
145
  def self.string_to_symbol s, options = {}
131
146
 
132
147
  ToSymbol_Helper_.string_to_symbol_with_options_ s, options
133
148
  end
134
149
 
150
+ # Converts the instance to a symbol, according to the given +options+
151
+ #
152
+ # See Xqsr3::StringUtilities::ToSymbol::string_to_symbol for options
135
153
  def to_symbol options = {}
136
154
 
137
155
  ToSymbol_Helper_.string_to_symbol_with_options_ self, options
@@ -6,13 +6,13 @@
6
6
  # module
7
7
  #
8
8
  # Created: 12th April 2018
9
- # Updated: 12th April 2018
9
+ # Updated: 12th April 2019
10
10
  #
11
11
  # Home: http://github.com/synesissoftware/xqsr3
12
12
  #
13
13
  # Author: Matthew Wilson
14
14
  #
15
- # Copyright (c) 2018, Matthew Wilson and Synesis Software
15
+ # Copyright (c) 2018-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
@@ -59,9 +59,9 @@ module StringUtilities
59
59
  module Truncate
60
60
 
61
61
  private
62
- module Truncate_Helper_ #:nodoc:
62
+ module Truncate_Helper_ # :nodoc:
63
63
 
64
- def self.string_truncate_with_options_ s, width, options
64
+ def self.string_truncate_with_options_ s, width, options # :nodoc:
65
65
 
66
66
  case s
67
67
  when ::String
@@ -102,11 +102,26 @@ module Truncate
102
102
  end
103
103
  public
104
104
 
105
+ # Truncates the given string +s+ to the given +width+ according to the
106
+ # given +options+
107
+ #
108
+ # === Signature
109
+ #
110
+ # * *Parameters:*
111
+ # - +s+ (String) The string to convert
112
+ # - +width+ (Integer) The truncation width
113
+ # - +options+ (Hash) Options hash
114
+ #
115
+ # * *Options:*
116
+ # - +:omission+ (String) Omission string. Defaults to "..."
105
117
  def self.string_truncate s, width, options = {}
106
118
 
107
119
  Truncate_Helper_.string_truncate_with_options_ s, width, options
108
120
  end
109
121
 
122
+ # Truncates the instance, according to the given +width+ and +options+
123
+ #
124
+ # See Xqsr3::StringUtilities::ToSymbol::string_truncate for options
110
125
  def truncate width, options = {}
111
126
 
112
127
  Truncate_Helper_.string_truncate_with_options_ self, width, options
@@ -50,7 +50,7 @@
50
50
  module Xqsr3
51
51
 
52
52
  # Current version of the Xqsr3 library
53
- VERSION = '0.32.2'
53
+ VERSION = '0.32.3'
54
54
 
55
55
  private
56
56
  VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xqsr3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.32.2
4
+ version: 0.32.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Wilson