xqsr3 0.14.1 → 0.15.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/xqsr3/extensions/kernel/integer.rb +82 -0
- data/lib/xqsr3/string_utilities/quote_if.rb +4 -0
- data/lib/xqsr3/version.rb +2 -2
- data/test/unit/extensions/kernel/tc_integer.rb +65 -0
- metadata +14 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 910334beb91320d62615b7f02f9464022938e516
|
4
|
+
data.tar.gz: df68d9b8d9959735425d6c08b49aafa3df3e0af7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b9e4d8e41e5d42bff485838be0ac51e74994e0a06e66edd416362ace55fe878021545f2313e531e629274f85b146bab0c5f41df74d12211367097974679ecb8
|
7
|
+
data.tar.gz: f8e8e8ff15521a4afa43ebee7b155c9f9a3b2982a990eec0c2bc684b2cb52a656203682cf77696aea4450465e12dc1c59f8f8521acd78e0761a7970e039c10db
|
@@ -0,0 +1,82 @@
|
|
1
|
+
|
2
|
+
# ######################################################################## #
|
3
|
+
# File: lib/xqsr3/extensions/kernel/integer.rb
|
4
|
+
#
|
5
|
+
# Purpose: Adds a Integer 'overload' to the Kernel module
|
6
|
+
#
|
7
|
+
# Created: 21st November 2017
|
8
|
+
# Updated: 21st November 2017
|
9
|
+
#
|
10
|
+
# Home: http://github.com/synesissoftware/xqsr3
|
11
|
+
#
|
12
|
+
# Author: Matthew Wilson
|
13
|
+
#
|
14
|
+
# Copyright (c) 2017, Matthew Wilson and Synesis Software
|
15
|
+
# All rights reserved.
|
16
|
+
#
|
17
|
+
# Redistribution and use in source and binary forms, with or without
|
18
|
+
# modification, are permitted provided that the following conditions are
|
19
|
+
# met:
|
20
|
+
#
|
21
|
+
# * Redistributions of source code must retain the above copyright
|
22
|
+
# notice, this list of conditions and the following disclaimer.
|
23
|
+
#
|
24
|
+
# * Redistributions in binary form must reproduce the above copyright
|
25
|
+
# notice, this list of conditions and the following disclaimer in the
|
26
|
+
# documentation and/or other materials provided with the distribution.
|
27
|
+
#
|
28
|
+
# * Neither the names of the copyright holder nor the names of its
|
29
|
+
# contributors may be used to endorse or promote products derived from
|
30
|
+
# this software without specific prior written permission.
|
31
|
+
#
|
32
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
33
|
+
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
34
|
+
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
35
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
36
|
+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
37
|
+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
38
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
39
|
+
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
40
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
41
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
42
|
+
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
43
|
+
#
|
44
|
+
# ######################################################################## #
|
45
|
+
|
46
|
+
|
47
|
+
# ##########################################################
|
48
|
+
# ::Kernel
|
49
|
+
|
50
|
+
=begin
|
51
|
+
=end
|
52
|
+
|
53
|
+
module Kernel
|
54
|
+
|
55
|
+
alias xqsr3_Integer_original_method Integer
|
56
|
+
|
57
|
+
def Integer(arg, base = 0, **options)
|
58
|
+
|
59
|
+
if options.has_key?(:default) || options[:nil]
|
60
|
+
|
61
|
+
unless arg.nil?
|
62
|
+
|
63
|
+
begin
|
64
|
+
|
65
|
+
return xqsr3_Integer_original_method arg, base
|
66
|
+
rescue ArgumentError
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
return options[:default] if options.has_key? :default
|
71
|
+
|
72
|
+
return nil
|
73
|
+
else
|
74
|
+
|
75
|
+
xqsr3_Integer_original_method arg, base
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end # module Kernel
|
79
|
+
|
80
|
+
# ############################## end of file ############################# #
|
81
|
+
|
82
|
+
|
@@ -61,6 +61,8 @@ module QuoteIf
|
|
61
61
|
|
62
62
|
def self.string_quote_if_array_ s, options
|
63
63
|
|
64
|
+
#$stderr.puts "#{self}#{__method__}(s (#{s.class})='#{s}', options (#{options.class})='#{options}'"
|
65
|
+
|
64
66
|
s = s.to_s unless String === s
|
65
67
|
|
66
68
|
quotes = options[:quotes] || [ '"', '"' ]
|
@@ -68,6 +70,8 @@ module QuoteIf
|
|
68
70
|
|
69
71
|
quotables = options[:quotables] || /\s/
|
70
72
|
|
73
|
+
#$stderr.puts "quotables (#{quotables.class}): [#{quotables}]"
|
74
|
+
|
71
75
|
case quotables
|
72
76
|
when ::String
|
73
77
|
|
data/lib/xqsr3/version.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
# Purpose: Version for Xqsr3 library
|
6
6
|
#
|
7
7
|
# Created: 3rd April 2016
|
8
|
-
# Updated:
|
8
|
+
# Updated: 22nd November 2017
|
9
9
|
#
|
10
10
|
# Home: http://github.com/synesissoftware/xqsr3
|
11
11
|
#
|
@@ -50,7 +50,7 @@
|
|
50
50
|
module Xqsr3
|
51
51
|
|
52
52
|
# Current version of the Xqsr3 library
|
53
|
-
VERSION = '0.
|
53
|
+
VERSION = '0.15.1'
|
54
54
|
|
55
55
|
private
|
56
56
|
VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
|
@@ -0,0 +1,65 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift File.join(File.dirname(__FILE__), '../../../../lib')
|
4
|
+
|
5
|
+
require 'xqsr3/extensions/kernel/integer'
|
6
|
+
|
7
|
+
require 'test/unit'
|
8
|
+
|
9
|
+
class Test_X_Kernel_Integer < Test::Unit::TestCase
|
10
|
+
|
11
|
+
def test_Integer_with_valid_values
|
12
|
+
|
13
|
+
assert_equal 0, Integer(0)
|
14
|
+
assert_equal +1, Integer(1)
|
15
|
+
assert_equal +1, Integer(+1)
|
16
|
+
assert_equal -1, Integer(-1)
|
17
|
+
|
18
|
+
assert_equal 0, Integer('0')
|
19
|
+
assert_equal +1, Integer('1')
|
20
|
+
assert_equal +1, Integer('+1')
|
21
|
+
assert_equal -1, Integer('-1')
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_Integer_with_invalid_values
|
25
|
+
|
26
|
+
assert_raise(TypeError) { Integer nil }
|
27
|
+
assert_raise(ArgumentError) { Integer '' }
|
28
|
+
assert_raise(ArgumentError) { Integer 'abc' }
|
29
|
+
assert_raise(ArgumentError) { Integer 'zero' }
|
30
|
+
assert_raise(ArgumentError) { Integer 'plus 1' }
|
31
|
+
assert_raise(ArgumentError) { Integer '/0' }
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_Integer_with_invalid_values_returning_nil
|
35
|
+
|
36
|
+
assert_nil Integer(nil, nil: true)
|
37
|
+
assert_nil Integer('', nil: true)
|
38
|
+
assert_nil Integer('abc', nil: true)
|
39
|
+
assert_nil Integer('zero', nil: true)
|
40
|
+
assert_nil Integer('plus 1', nil: true)
|
41
|
+
assert_nil Integer('/0', nil: true)
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_Integer_with_invalid_values_returning_0
|
45
|
+
|
46
|
+
assert_equal 0, Integer(nil, default: 0)
|
47
|
+
assert_equal 0, Integer('', default: 0)
|
48
|
+
assert_equal 0, Integer('abc', default: 0)
|
49
|
+
assert_equal 0, Integer('zero', default: 0)
|
50
|
+
assert_equal 0, Integer('plus 1', default: 0)
|
51
|
+
assert_equal 0, Integer('/0', default: 0)
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_Integer_with_invalid_values_returning_sentinel
|
55
|
+
|
56
|
+
assert_equal :sentinel, Integer(nil, default: :sentinel)
|
57
|
+
assert_equal :sentinel, Integer('', default: :sentinel)
|
58
|
+
assert_equal :sentinel, Integer('abc', default: :sentinel)
|
59
|
+
assert_equal :sentinel, Integer('zero', default: :sentinel)
|
60
|
+
assert_equal :sentinel, Integer('plus 1', default: :sentinel)
|
61
|
+
assert_equal :sentinel, Integer('/0', default: :sentinel)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
|
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.15.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Wilson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-22 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
|
@@ -19,41 +19,44 @@ executables: []
|
|
19
19
|
extensions: []
|
20
20
|
extra_rdoc_files: []
|
21
21
|
files:
|
22
|
+
- LICENSE
|
23
|
+
- README.md
|
22
24
|
- lib/xqsr3/command_line_utilities/map_option_string.rb
|
23
25
|
- lib/xqsr3/containers/frequency_map.rb
|
24
26
|
- lib/xqsr3/containers/multi_map.rb
|
25
27
|
- lib/xqsr3/conversion/bool_parser.rb
|
26
28
|
- lib/xqsr3/diagnostics/exception_utilities.rb
|
27
29
|
- lib/xqsr3/doc_.rb
|
30
|
+
- lib/xqsr3/extensions/enumerable.rb
|
28
31
|
- lib/xqsr3/extensions/enumerable/collect_with_index.rb
|
29
32
|
- lib/xqsr3/extensions/enumerable/unique.rb
|
30
|
-
- lib/xqsr3/extensions/
|
33
|
+
- lib/xqsr3/extensions/hash.rb
|
31
34
|
- lib/xqsr3/extensions/hash/deep_transform.rb
|
32
35
|
- lib/xqsr3/extensions/hash/has_match.rb
|
33
36
|
- lib/xqsr3/extensions/hash/match.rb
|
34
|
-
- lib/xqsr3/extensions/hash.rb
|
35
|
-
- lib/xqsr3/extensions/io/writelines.rb
|
36
37
|
- lib/xqsr3/extensions/io.rb
|
37
|
-
- lib/xqsr3/extensions/
|
38
|
+
- lib/xqsr3/extensions/io/writelines.rb
|
38
39
|
- lib/xqsr3/extensions/kernel.rb
|
40
|
+
- lib/xqsr3/extensions/kernel/integer.rb
|
41
|
+
- lib/xqsr3/extensions/kernel/raise_with_options.rb
|
42
|
+
- lib/xqsr3/extensions/string.rb
|
39
43
|
- lib/xqsr3/extensions/string/ends_with.rb
|
40
44
|
- lib/xqsr3/extensions/string/map_option_string.rb
|
41
45
|
- lib/xqsr3/extensions/string/quote_if.rb
|
42
46
|
- lib/xqsr3/extensions/string/starts_with.rb
|
43
47
|
- lib/xqsr3/extensions/string/to_bool.rb
|
44
48
|
- lib/xqsr3/extensions/string/to_symbol.rb
|
45
|
-
- lib/xqsr3/extensions/
|
49
|
+
- lib/xqsr3/extensions/test/unit.rb
|
46
50
|
- lib/xqsr3/extensions/test/unit/assert_eql.rb
|
47
51
|
- lib/xqsr3/extensions/test/unit/assert_false.rb
|
48
52
|
- lib/xqsr3/extensions/test/unit/assert_not.rb
|
49
53
|
- lib/xqsr3/extensions/test/unit/assert_not_eql.rb
|
50
54
|
- lib/xqsr3/extensions/test/unit/assert_true.rb
|
51
|
-
- lib/xqsr3/extensions/test/unit.rb
|
52
55
|
- lib/xqsr3/hash_utilities/deep_transform.rb
|
53
56
|
- lib/xqsr3/hash_utilities/key_matching.rb
|
54
57
|
- lib/xqsr3/io/writelines.rb
|
55
|
-
- lib/xqsr3/quality/parameter_checking.rb
|
56
58
|
- lib/xqsr3/quality.rb
|
59
|
+
- lib/xqsr3/quality/parameter_checking.rb
|
57
60
|
- lib/xqsr3/string_utilities/ends_with.rb
|
58
61
|
- lib/xqsr3/string_utilities/quote_if.rb
|
59
62
|
- lib/xqsr3/string_utilities/starts_with.rb
|
@@ -76,6 +79,7 @@ files:
|
|
76
79
|
- test/unit/extensions/hash/ts_all.rb
|
77
80
|
- test/unit/extensions/io/tc_writelines.rb
|
78
81
|
- test/unit/extensions/io/ts_all.rb
|
82
|
+
- test/unit/extensions/kernel/tc_integer.rb
|
79
83
|
- test/unit/extensions/kernel/tc_raise_with_options.rb
|
80
84
|
- test/unit/extensions/kernel/ts_all.rb
|
81
85
|
- test/unit/extensions/string/tc_bool.tb
|
@@ -98,8 +102,6 @@ files:
|
|
98
102
|
- test/unit/xml/ts_all.rb
|
99
103
|
- test/unit/xml/utilities/tc_compare.rb
|
100
104
|
- test/unit/xml/utilities/ts_all.rb
|
101
|
-
- README.md
|
102
|
-
- LICENSE
|
103
105
|
homepage: http://github.com/synesissoftware/xqsr3
|
104
106
|
licenses:
|
105
107
|
- 3-clause BSD
|
@@ -120,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
122
|
version: '0'
|
121
123
|
requirements: []
|
122
124
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
125
|
+
rubygems_version: 2.4.2
|
124
126
|
signing_key:
|
125
127
|
specification_version: 4
|
126
128
|
summary: xqsr3
|