qat-core 6.0.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.
@@ -0,0 +1,73 @@
1
+ require 'active_support/core_ext/hash/keys'
2
+
3
+ module QAT
4
+ # This is a wrapper namespace for utility methods in QAT
5
+ module Utils
6
+ # This module gives helper methods for Hash
7
+ module Hash
8
+ # Returns values form a given path (keys) of a complex structure of data
9
+ # @param node [Object] the node of the structure to look into (root or leaf)
10
+ # @param path [Array] list of keys to use for searching values
11
+ # @possible_leaf_nodes [Array] possible values for return (optional)
12
+ # @return [Array]
13
+ def navigate_path(node, path, possible_leaf_nodes = [])
14
+
15
+ node = node.dup.symbolize_keys if node.kind_of?(::Hash)
16
+
17
+ if path.empty?
18
+ possible_leaf_nodes << node
19
+ return possible_leaf_nodes
20
+ end
21
+
22
+ path = path.dup
23
+ path_head = path.shift
24
+ regex = '.*\[(\*|-?\d+)\]'
25
+
26
+ obj_index = nil
27
+ match = path_head.to_s.match(regex)
28
+ if match
29
+ index = match.begin(1)
30
+ obj_index = match[1]
31
+ path_head = path_head.slice(0, index - 1).to_sym
32
+ end
33
+
34
+ if !node || (!node.kind_of?(Array) && !node.keys.map(&:to_sym).include?(path_head.to_sym))
35
+ possible_leaf_nodes << :field_not_found
36
+ return possible_leaf_nodes
37
+ end
38
+
39
+ new_node = nil
40
+ if node.kind_of?(Array) && obj_index #index is prefixed
41
+ if obj_index.eql? '*'
42
+ node.each do |item|
43
+ navigate_path(item, path, possible_leaf_nodes)
44
+ end
45
+ possible_leaf_nodes
46
+ else
47
+ new_node = node[obj_index.to_i]
48
+ end
49
+
50
+ else
51
+ new_node = node[path_head.to_sym]
52
+ end
53
+
54
+
55
+ if new_node.kind_of?(Array) && obj_index #index is suffixed
56
+ if obj_index.eql? '*'
57
+ new_node.each do |item|
58
+ navigate_path(item, path, possible_leaf_nodes)
59
+ end
60
+ possible_leaf_nodes
61
+ else
62
+ new_node = new_node[obj_index.to_i]
63
+ navigate_path(new_node, path, possible_leaf_nodes)
64
+ end
65
+ else
66
+ navigate_path(new_node, path, possible_leaf_nodes)
67
+ end
68
+ end
69
+
70
+ module_function :navigate_path
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,18 @@
1
+ module QAT
2
+
3
+ # This is a wrapper namespace for utility methods in QAT
4
+ module Utils
5
+ # This module gives helper methods for IP handling and/or validation
6
+ module Network
7
+ # Validates if +ip+ is a valid IP Address.
8
+ #
9
+ #@param ip [String] wannabe IP Address
10
+ #@return [Boolean]
11
+ def is_ip?(ip)
12
+ !!IPAddr.new(ip) rescue false
13
+ end
14
+
15
+ extend self
16
+ end
17
+ end
18
+ end
metadata ADDED
@@ -0,0 +1,293 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: qat-core
3
+ version: !ruby/object:Gem::Version
4
+ version: 6.0.0
5
+ platform: ruby
6
+ authors:
7
+ - QAT
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-07-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: qat-logger
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '6.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '6.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: tzinfo-data
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: net-ssh
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: net-ntp
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.1'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 2.1.3
93
+ type: :runtime
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '2.1'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 2.1.3
103
+ - !ruby/object:Gem::Dependency
104
+ name: chronic
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.10'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 0.10.2
113
+ type: :runtime
114
+ prerelease: false
115
+ version_requirements: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '0.10'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 0.10.2
123
+ - !ruby/object:Gem::Dependency
124
+ name: timecop
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '0.8'
130
+ type: :runtime
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '0.8'
137
+ - !ruby/object:Gem::Dependency
138
+ name: timezone_local
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '0.1'
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: 0.1.5
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '0.1'
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: 0.1.5
157
+ - !ruby/object:Gem::Dependency
158
+ name: little-plugger
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - "~>"
162
+ - !ruby/object:Gem::Version
163
+ version: '1.1'
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: 1.1.4
167
+ type: :runtime
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '1.1'
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: 1.1.4
177
+ - !ruby/object:Gem::Dependency
178
+ name: qat-devel
179
+ requirement: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: '6.0'
184
+ type: :development
185
+ prerelease: false
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - "~>"
189
+ - !ruby/object:Gem::Version
190
+ version: '6.0'
191
+ - !ruby/object:Gem::Dependency
192
+ name: minitest
193
+ requirement: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - "~>"
196
+ - !ruby/object:Gem::Version
197
+ version: '5.7'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - "~>"
203
+ - !ruby/object:Gem::Version
204
+ version: '5.7'
205
+ - !ruby/object:Gem::Dependency
206
+ name: aruba
207
+ requirement: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - "~>"
210
+ - !ruby/object:Gem::Version
211
+ version: '0.9'
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - "~>"
217
+ - !ruby/object:Gem::Version
218
+ version: '0.9'
219
+ - !ruby/object:Gem::Dependency
220
+ name: retriable
221
+ requirement: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - "~>"
224
+ - !ruby/object:Gem::Version
225
+ version: '3.0'
226
+ type: :development
227
+ prerelease: false
228
+ version_requirements: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - "~>"
231
+ - !ruby/object:Gem::Version
232
+ version: '3.0'
233
+ - !ruby/object:Gem::Dependency
234
+ name: httparty
235
+ requirement: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - "~>"
238
+ - !ruby/object:Gem::Version
239
+ version: '0.15'
240
+ type: :development
241
+ prerelease: false
242
+ version_requirements: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - "~>"
245
+ - !ruby/object:Gem::Version
246
+ version: '0.15'
247
+ description: |2
248
+ QAT-Core is QAT's engine, including a collection of modules for:
249
+ - Configuration management and persistence
250
+ - Time manipulation
251
+ email: qatoolkit@readinessit.com
252
+ executables: []
253
+ extensions: []
254
+ extra_rdoc_files: []
255
+ files:
256
+ - LICENSE
257
+ - lib/qat/configuration.rb
258
+ - lib/qat/configuration/environment.rb
259
+ - lib/qat/configuration/parser.rb
260
+ - lib/qat/core.rb
261
+ - lib/qat/core/version.rb
262
+ - lib/qat/core_ext/integer.rb
263
+ - lib/qat/core_ext/object/deep_compact.rb
264
+ - lib/qat/time.rb
265
+ - lib/qat/time/zone/unix.rb
266
+ - lib/qat/time/zone/windows.rb
267
+ - lib/qat/time/zone/windows/tz_data.xml
268
+ - lib/qat/utils/hash.rb
269
+ - lib/qat/utils/network.rb
270
+ homepage: https://github.com/readiness-it/qat-core
271
+ licenses:
272
+ - GPL-3.0
273
+ metadata: {}
274
+ post_install_message:
275
+ rdoc_options: []
276
+ require_paths:
277
+ - lib
278
+ required_ruby_version: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ - - "~>"
281
+ - !ruby/object:Gem::Version
282
+ version: '2.3'
283
+ required_rubygems_version: !ruby/object:Gem::Requirement
284
+ requirements:
285
+ - - ">="
286
+ - !ruby/object:Gem::Version
287
+ version: '0'
288
+ requirements: []
289
+ rubygems_version: 3.0.4
290
+ signing_key:
291
+ specification_version: 4
292
+ summary: QAT-Core is QAT's toolkit engine for automating tests.
293
+ test_files: []