xqsr3 0.13.3 → 0.14.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/hash/has_match.rb +11 -0
- data/lib/xqsr3/extensions/hash/match.rb +11 -0
- data/lib/xqsr3/extensions/hash.rb +5 -0
- data/lib/xqsr3/hash_utilities/key_matching.rb +175 -0
- data/lib/xqsr3/string_utilities/quote_if.rb +0 -4
- data/lib/xqsr3/version.rb +2 -2
- data/test/unit/hash_utilities/tc_has_match.rb +100 -0
- data/test/unit/hash_utilities/tc_match.rb +130 -0
- data/test/unit/hash_utilities/ts_all.rb +12 -0
- metadata +18 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d2428b61c6d1ffe6859382fac62b8ab460cafb8
|
4
|
+
data.tar.gz: c8b15079affd7d14f1fc68fa64aa83b14ccc0c3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8e73c19d7d688d02e22a4db0d121d0d1da5b9432d1fe801ee55667f2f90eb8079ff622ae4d924dbb0e71e2d63b2f9d5c149923c979261acfddd768e8c40c711
|
7
|
+
data.tar.gz: f208ebf0cabcb05ec49064db7478f0f5b37a0de948207cadec78662e66127593c9e08a25b456b816282a9998738860dc83f3919b88bd5ec542f55bbef8230a80
|
@@ -0,0 +1,175 @@
|
|
1
|
+
|
2
|
+
# ######################################################################## #
|
3
|
+
# File: lib/xqsr3/hash_utilities/key_matching.rb
|
4
|
+
#
|
5
|
+
# Purpose: Definition of the ::Xqsr3::HashUtilities::KeyMatching
|
6
|
+
# module
|
7
|
+
#
|
8
|
+
# Created: 15th November 2017
|
9
|
+
# Updated: 15th November 2017
|
10
|
+
#
|
11
|
+
# Home: http://github.com/synesissoftware/xqsr3
|
12
|
+
#
|
13
|
+
# Author: Matthew Wilson
|
14
|
+
#
|
15
|
+
# Copyright (c) 2017, Matthew Wilson and Synesis Software
|
16
|
+
# All rights reserved.
|
17
|
+
#
|
18
|
+
# Redistribution and use in source and binary forms, with or without
|
19
|
+
# modification, are permitted provided that the following conditions are
|
20
|
+
# met:
|
21
|
+
#
|
22
|
+
# * Redistributions of source code must retain the above copyright notice,
|
23
|
+
# this list of conditions and the following disclaimer.
|
24
|
+
#
|
25
|
+
# * Redistributions in binary form must reproduce the above copyright
|
26
|
+
# notice, this list of conditions and the following disclaimer in the
|
27
|
+
# documentation and/or other materials provided with the distribution.
|
28
|
+
#
|
29
|
+
# * Neither the names of the copyright holder nor the names of its
|
30
|
+
# contributors may be used to endorse or promote products derived from
|
31
|
+
# this software without specific prior written permission.
|
32
|
+
#
|
33
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
34
|
+
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
35
|
+
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
36
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
37
|
+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
38
|
+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
39
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
40
|
+
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
41
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
42
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
43
|
+
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
44
|
+
#
|
45
|
+
# ######################################################################## #
|
46
|
+
|
47
|
+
|
48
|
+
require 'xqsr3/quality/parameter_checking'
|
49
|
+
|
50
|
+
# ##########################################################
|
51
|
+
# ::Xqsr3::HashUtilities::KeyMatching
|
52
|
+
|
53
|
+
=begin
|
54
|
+
=end
|
55
|
+
|
56
|
+
module Xqsr3
|
57
|
+
module HashUtilities
|
58
|
+
|
59
|
+
module KeyMatching
|
60
|
+
|
61
|
+
private
|
62
|
+
def self.do_match_ h, re, **options
|
63
|
+
|
64
|
+
::Xqsr3::Quality::ParameterChecking.check_parameter h, 'h', responds_to: [ :[], :has_key?, :each ]
|
65
|
+
|
66
|
+
return h[re] if h.has_key? re
|
67
|
+
|
68
|
+
case re
|
69
|
+
when ::Regexp
|
70
|
+
|
71
|
+
h.each do |k, v|
|
72
|
+
|
73
|
+
case k
|
74
|
+
when ::Regexp
|
75
|
+
|
76
|
+
next
|
77
|
+
else
|
78
|
+
|
79
|
+
return v if k.to_s =~ re
|
80
|
+
end
|
81
|
+
end
|
82
|
+
else
|
83
|
+
|
84
|
+
h.each do |k, v|
|
85
|
+
|
86
|
+
case k
|
87
|
+
when ::Regexp
|
88
|
+
|
89
|
+
return v if re.to_s =~ k
|
90
|
+
else
|
91
|
+
|
92
|
+
next
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
nil
|
98
|
+
end
|
99
|
+
|
100
|
+
def self.do_has_match_ h, re, **options
|
101
|
+
|
102
|
+
::Xqsr3::Quality::ParameterChecking.check_parameter h, 'h', responds_to: [ :[], :has_key?, :each ]
|
103
|
+
|
104
|
+
return true if h.has_key? re
|
105
|
+
|
106
|
+
case re
|
107
|
+
when ::Regexp
|
108
|
+
|
109
|
+
h.each do |k, v|
|
110
|
+
|
111
|
+
case k
|
112
|
+
when ::Regexp
|
113
|
+
|
114
|
+
next
|
115
|
+
else
|
116
|
+
|
117
|
+
return true if k.to_s =~ re
|
118
|
+
end
|
119
|
+
end
|
120
|
+
else
|
121
|
+
|
122
|
+
h.each do |k, v|
|
123
|
+
|
124
|
+
case k
|
125
|
+
when ::Regexp
|
126
|
+
|
127
|
+
return true if re.to_s =~ k
|
128
|
+
else
|
129
|
+
|
130
|
+
next
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
false
|
136
|
+
end
|
137
|
+
public
|
138
|
+
|
139
|
+
# Retrieves the value object corresponding to the first key object that
|
140
|
+
# matches the given +re+, in the hash +h+, according to the given
|
141
|
+
# options.
|
142
|
+
def self.match h, re, **options
|
143
|
+
|
144
|
+
Xqsr3::HashUtilities::KeyMatching.do_match_ h, re, **options
|
145
|
+
end
|
146
|
+
|
147
|
+
# Returns true if the hash +h+ contains a key object that matches the
|
148
|
+
# given +re+, according to the given options
|
149
|
+
def self.has_match? h, re, **options
|
150
|
+
|
151
|
+
Xqsr3::HashUtilities::KeyMatching.do_has_match_ h, re, **options
|
152
|
+
end
|
153
|
+
|
154
|
+
# Retrieves the value object corresponding to the first key object that
|
155
|
+
# matches the given +re+, in the hash +h+, according to the given
|
156
|
+
# options.
|
157
|
+
def match h, re, **options
|
158
|
+
|
159
|
+
Xqsr3::HashUtilities::KeyMatching.do_match_ h, re, **options
|
160
|
+
end
|
161
|
+
|
162
|
+
# Returns true if the hash +h+ contains a key object that matches the
|
163
|
+
# given +re+, according to the given options
|
164
|
+
def has_match? h, re, **options
|
165
|
+
|
166
|
+
Xqsr3::HashUtilities::KeyMatching.do_has_match_ h, re, **options
|
167
|
+
end
|
168
|
+
|
169
|
+
end # module KeyMatching
|
170
|
+
|
171
|
+
end # module HashUtilities
|
172
|
+
end # module Xqsr3
|
173
|
+
|
174
|
+
# ############################## end of file ############################# #
|
175
|
+
|
@@ -61,8 +61,6 @@ 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
|
-
|
66
64
|
s = s.to_s unless String === s
|
67
65
|
|
68
66
|
quotes = options[:quotes] || [ '"', '"' ]
|
@@ -70,8 +68,6 @@ module QuoteIf
|
|
70
68
|
|
71
69
|
quotables = options[:quotables] || /\s/
|
72
70
|
|
73
|
-
#$stderr.puts "quotables (#{quotables.class}): [#{quotables}]"
|
74
|
-
|
75
71
|
case quotables
|
76
72
|
when ::String
|
77
73
|
|
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: 15th 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.14.1'
|
54
54
|
|
55
55
|
private
|
56
56
|
VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
|
@@ -0,0 +1,100 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift File.join(File.dirname(__FILE__), '../../../lib')
|
4
|
+
|
5
|
+
require 'xqsr3/hash_utilities/key_matching'
|
6
|
+
|
7
|
+
require 'xqsr3/extensions/test/unit'
|
8
|
+
require 'test/unit'
|
9
|
+
|
10
|
+
|
11
|
+
class Test_Xqsr3_HashUtilities_has_match_by_module < Test::Unit::TestCase
|
12
|
+
|
13
|
+
Matching = ::Xqsr3::HashUtilities::KeyMatching
|
14
|
+
|
15
|
+
def test_against_none_re
|
16
|
+
|
17
|
+
h = {
|
18
|
+
|
19
|
+
:abc => :abc,
|
20
|
+
'abc' => 'abc',
|
21
|
+
'def' => 'def',
|
22
|
+
:nil => nil,
|
23
|
+
:sym => :sym,
|
24
|
+
}
|
25
|
+
|
26
|
+
assert_false Matching.has_match?(h, '')
|
27
|
+
assert_true Matching.has_match?(h, 'def')
|
28
|
+
assert_false Matching.has_match?(h, 'ghi')
|
29
|
+
assert_true Matching.has_match?(h, :nil)
|
30
|
+
assert_false Matching.has_match?(h, 'nil')
|
31
|
+
assert_true Matching.has_match?(h, :sym)
|
32
|
+
assert_false Matching.has_match?(h, 'sym')
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_against_empty_re
|
36
|
+
|
37
|
+
h = {
|
38
|
+
|
39
|
+
:abc => :abc,
|
40
|
+
'abc' => 'abc',
|
41
|
+
'def' => 'def',
|
42
|
+
:nil => nil,
|
43
|
+
:sym => :sym,
|
44
|
+
}
|
45
|
+
|
46
|
+
assert_true Matching.has_match?(h, //)
|
47
|
+
|
48
|
+
assert_true Matching.has_match?(h, /def/)
|
49
|
+
assert_true Matching.has_match?(h, /de/)
|
50
|
+
assert_true Matching.has_match?(h, /^de/)
|
51
|
+
assert_false Matching.has_match?(h, /de$/)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
require 'xqsr3/extensions/hash/has_match'
|
57
|
+
|
58
|
+
class Test_Xqsr3_HashUtilities_has_match_by_include < Test::Unit::TestCase
|
59
|
+
|
60
|
+
def test_against_none_re
|
61
|
+
|
62
|
+
h = {
|
63
|
+
|
64
|
+
:abc => :abc,
|
65
|
+
'abc' => 'abc',
|
66
|
+
'def' => 'def',
|
67
|
+
:nil => nil,
|
68
|
+
:sym => :sym,
|
69
|
+
}
|
70
|
+
|
71
|
+
assert_false h.has_match?('')
|
72
|
+
assert_true h.has_match?('def')
|
73
|
+
assert_false h.has_match?('ghi')
|
74
|
+
assert_true h.has_match?(:nil)
|
75
|
+
assert_false h.has_match?('nil')
|
76
|
+
assert_true h.has_match?(:sym)
|
77
|
+
assert_false h.has_match?('sym')
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_against_empty_re
|
81
|
+
|
82
|
+
h = {
|
83
|
+
|
84
|
+
:abc => :abc,
|
85
|
+
'abc' => 'abc',
|
86
|
+
'def' => 'def',
|
87
|
+
:nil => nil,
|
88
|
+
:sym => :sym,
|
89
|
+
}
|
90
|
+
|
91
|
+
assert_true h.has_match?(//)
|
92
|
+
|
93
|
+
assert_true h.has_match?(/def/)
|
94
|
+
assert_true h.has_match?(/de/)
|
95
|
+
assert_true h.has_match?(/^de/)
|
96
|
+
assert_false h.has_match?(/de$/)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
|
@@ -0,0 +1,130 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift File.join(File.dirname(__FILE__), '../../../lib')
|
4
|
+
|
5
|
+
require 'xqsr3/hash_utilities/key_matching'
|
6
|
+
|
7
|
+
require 'xqsr3/extensions/test/unit'
|
8
|
+
require 'test/unit'
|
9
|
+
|
10
|
+
|
11
|
+
class Test_Xqsr3_HashUtilities_match_by_module < Test::Unit::TestCase
|
12
|
+
|
13
|
+
Matching = ::Xqsr3::HashUtilities::KeyMatching
|
14
|
+
|
15
|
+
def test_against_none_re
|
16
|
+
|
17
|
+
h = {
|
18
|
+
|
19
|
+
:abc => :abc,
|
20
|
+
'abc' => 'abc',
|
21
|
+
'def' => 'def',
|
22
|
+
:nil => nil,
|
23
|
+
:sym => :sym,
|
24
|
+
}
|
25
|
+
|
26
|
+
assert_nil Matching.match(h, '')
|
27
|
+
assert_not_nil Matching.match(h, 'def')
|
28
|
+
assert_nil Matching.match(h, 'ghi')
|
29
|
+
assert_nil Matching.match(h, :nil) # although this is matching!
|
30
|
+
assert_nil Matching.match(h, 'nil')
|
31
|
+
assert_not_nil Matching.match(h, :sym)
|
32
|
+
assert_nil Matching.match(h, 'sym')
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_against_empty_re
|
36
|
+
|
37
|
+
h = {
|
38
|
+
|
39
|
+
:abc => :abc,
|
40
|
+
'abc' => 'abc',
|
41
|
+
'def' => 'def',
|
42
|
+
:nil => nil,
|
43
|
+
:sym => :sym,
|
44
|
+
}
|
45
|
+
|
46
|
+
assert_not_nil Matching.match(h, //)
|
47
|
+
assert_equal h.first[1], Matching.match(h, //)
|
48
|
+
|
49
|
+
assert_equal 'def', Matching.match(h, /def/)
|
50
|
+
assert_equal 'def', Matching.match(h, /de/)
|
51
|
+
assert_equal 'def', Matching.match(h, /^de/)
|
52
|
+
assert_nil Matching.match(h, /de$/)
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_hash_containing_re
|
56
|
+
|
57
|
+
h = {
|
58
|
+
|
59
|
+
/bc/ => :bc,
|
60
|
+
/de/ => :de,
|
61
|
+
:abc => :abc,
|
62
|
+
}
|
63
|
+
|
64
|
+
assert_nil Matching.match(h, '')
|
65
|
+
assert_nil Matching.match(h, :ab)
|
66
|
+
assert_equal :bc, Matching.match(h, :abcd)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
require 'xqsr3/extensions/hash/match'
|
72
|
+
|
73
|
+
class Test_Xqsr3_HashUtilities_match_by_include < Test::Unit::TestCase
|
74
|
+
|
75
|
+
def test_against_none_re
|
76
|
+
|
77
|
+
h = {
|
78
|
+
|
79
|
+
:abc => :abc,
|
80
|
+
'abc' => 'abc',
|
81
|
+
'def' => 'def',
|
82
|
+
:nil => nil,
|
83
|
+
:sym => :sym,
|
84
|
+
}
|
85
|
+
|
86
|
+
assert_nil h.match('')
|
87
|
+
assert_not_nil h.match('def')
|
88
|
+
assert_nil h.match('ghi')
|
89
|
+
assert_nil h.match(:nil) # although this is matching!
|
90
|
+
assert_nil h.match('nil')
|
91
|
+
assert_not_nil h.match(:sym)
|
92
|
+
assert_nil h.match('sym')
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_against_empty_re
|
96
|
+
|
97
|
+
h = {
|
98
|
+
|
99
|
+
:abc => :abc,
|
100
|
+
'abc' => 'abc',
|
101
|
+
'def' => 'def',
|
102
|
+
:nil => nil,
|
103
|
+
:sym => :sym,
|
104
|
+
}
|
105
|
+
|
106
|
+
assert_not_nil h.match(//)
|
107
|
+
assert_equal h.first[1], h.match(//)
|
108
|
+
|
109
|
+
assert_equal 'def', h.match(/def/)
|
110
|
+
assert_equal 'def', h.match(/de/)
|
111
|
+
assert_equal 'def', h.match(/^de/)
|
112
|
+
assert_nil h.match(/de$/)
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_hash_containing_re
|
116
|
+
|
117
|
+
h = {
|
118
|
+
|
119
|
+
/bc/ => :bc,
|
120
|
+
/de/ => :de,
|
121
|
+
:abc => :abc,
|
122
|
+
}
|
123
|
+
|
124
|
+
assert_nil h.match('')
|
125
|
+
assert_nil h.match(:ab)
|
126
|
+
assert_equal :bc, h.match(:abcd)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# executes all other tests
|
4
|
+
|
5
|
+
this_dir = File.expand_path(File.dirname(__FILE__))
|
6
|
+
|
7
|
+
# all tc_*rb in current directory
|
8
|
+
Dir[File.join(this_dir, 'tc_*rb')].each { |file| require file }
|
9
|
+
|
10
|
+
# all ts_*rb in immediate sub-directories
|
11
|
+
Dir[File.join(this_dir, '*', 'ts_*rb')].each { |file| require file }
|
12
|
+
|
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.14.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-16 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,39 +19,41 @@ executables: []
|
|
19
19
|
extensions: []
|
20
20
|
extra_rdoc_files: []
|
21
21
|
files:
|
22
|
-
- LICENSE
|
23
|
-
- README.md
|
24
22
|
- lib/xqsr3/command_line_utilities/map_option_string.rb
|
25
23
|
- lib/xqsr3/containers/frequency_map.rb
|
26
24
|
- lib/xqsr3/containers/multi_map.rb
|
27
25
|
- lib/xqsr3/conversion/bool_parser.rb
|
28
26
|
- lib/xqsr3/diagnostics/exception_utilities.rb
|
29
27
|
- lib/xqsr3/doc_.rb
|
30
|
-
- lib/xqsr3/extensions/enumerable.rb
|
31
28
|
- lib/xqsr3/extensions/enumerable/collect_with_index.rb
|
32
29
|
- lib/xqsr3/extensions/enumerable/unique.rb
|
30
|
+
- lib/xqsr3/extensions/enumerable.rb
|
33
31
|
- lib/xqsr3/extensions/hash/deep_transform.rb
|
34
|
-
- lib/xqsr3/extensions/
|
32
|
+
- lib/xqsr3/extensions/hash/has_match.rb
|
33
|
+
- lib/xqsr3/extensions/hash/match.rb
|
34
|
+
- lib/xqsr3/extensions/hash.rb
|
35
35
|
- lib/xqsr3/extensions/io/writelines.rb
|
36
|
-
- lib/xqsr3/extensions/
|
36
|
+
- lib/xqsr3/extensions/io.rb
|
37
37
|
- lib/xqsr3/extensions/kernel/raise_with_options.rb
|
38
|
-
- lib/xqsr3/extensions/
|
38
|
+
- lib/xqsr3/extensions/kernel.rb
|
39
39
|
- lib/xqsr3/extensions/string/ends_with.rb
|
40
40
|
- lib/xqsr3/extensions/string/map_option_string.rb
|
41
41
|
- lib/xqsr3/extensions/string/quote_if.rb
|
42
42
|
- lib/xqsr3/extensions/string/starts_with.rb
|
43
43
|
- lib/xqsr3/extensions/string/to_bool.rb
|
44
44
|
- lib/xqsr3/extensions/string/to_symbol.rb
|
45
|
-
- lib/xqsr3/extensions/
|
45
|
+
- lib/xqsr3/extensions/string.rb
|
46
46
|
- lib/xqsr3/extensions/test/unit/assert_eql.rb
|
47
47
|
- lib/xqsr3/extensions/test/unit/assert_false.rb
|
48
48
|
- lib/xqsr3/extensions/test/unit/assert_not.rb
|
49
49
|
- lib/xqsr3/extensions/test/unit/assert_not_eql.rb
|
50
50
|
- lib/xqsr3/extensions/test/unit/assert_true.rb
|
51
|
+
- lib/xqsr3/extensions/test/unit.rb
|
51
52
|
- lib/xqsr3/hash_utilities/deep_transform.rb
|
53
|
+
- lib/xqsr3/hash_utilities/key_matching.rb
|
52
54
|
- lib/xqsr3/io/writelines.rb
|
53
|
-
- lib/xqsr3/quality.rb
|
54
55
|
- lib/xqsr3/quality/parameter_checking.rb
|
56
|
+
- lib/xqsr3/quality.rb
|
55
57
|
- lib/xqsr3/string_utilities/ends_with.rb
|
56
58
|
- lib/xqsr3/string_utilities/quote_if.rb
|
57
59
|
- lib/xqsr3/string_utilities/starts_with.rb
|
@@ -84,6 +86,9 @@ files:
|
|
84
86
|
- test/unit/extensions/string/tc_to_symbol.rb
|
85
87
|
- test/unit/extensions/string/ts_all.rb
|
86
88
|
- test/unit/extensions/ts_all.rb
|
89
|
+
- test/unit/hash_utilities/tc_has_match.rb
|
90
|
+
- test/unit/hash_utilities/tc_match.rb
|
91
|
+
- test/unit/hash_utilities/ts_all.rb
|
87
92
|
- test/unit/io/tc_writelines.rb
|
88
93
|
- test/unit/io/ts_all.rb
|
89
94
|
- test/unit/quality/tc_parameter_checking.rb
|
@@ -93,6 +98,8 @@ files:
|
|
93
98
|
- test/unit/xml/ts_all.rb
|
94
99
|
- test/unit/xml/utilities/tc_compare.rb
|
95
100
|
- test/unit/xml/utilities/ts_all.rb
|
101
|
+
- README.md
|
102
|
+
- LICENSE
|
96
103
|
homepage: http://github.com/synesissoftware/xqsr3
|
97
104
|
licenses:
|
98
105
|
- 3-clause BSD
|
@@ -113,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
120
|
version: '0'
|
114
121
|
requirements: []
|
115
122
|
rubyforge_project:
|
116
|
-
rubygems_version: 2.
|
123
|
+
rubygems_version: 2.0.14.1
|
117
124
|
signing_key:
|
118
125
|
specification_version: 4
|
119
126
|
summary: xqsr3
|