sneaql 0.0.19-java → 0.0.20-java
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.
- checksums.yaml +4 -4
- data/lib/sneaql.rb +12 -7
- data/lib/sneaql_lib/core.rb +24 -1
- data/lib/sneaql_lib/exceptions.rb +7 -0
- data/lib/sneaql_lib/recordset.rb +11 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e5f3a3178b52ab661d45c5987378fef1c50a5bf1c4b21b23909b4ea14d73a0d
|
4
|
+
data.tar.gz: 0c139bb80dc24cdbfe816ae4e7cd3f4d64eff2151c88e0c785e904dc9a69b55c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0085e97d956acb92bc56c64ecfeb45f18b62d451f959e219cb1e5ec0c1c49f2ea27bccca7189516d6b5ec4e4afa6886b8543438561494e33d2a1614880f25bf
|
7
|
+
data.tar.gz: d946b6a4e64583bb1aad32fb504deac107c829d8478c104b8e85e16c2809fdb38c7cdd5b77575180eebb895fe80e18547a7d3d353084cbb09abf2e6f600266d8
|
data/lib/sneaql.rb
CHANGED
@@ -244,9 +244,19 @@ module Sneaql
|
|
244
244
|
end
|
245
245
|
|
246
246
|
begin
|
247
|
+
# find the class assciated with this command
|
248
|
+
k = Sneaql::Core.find_class(:command, this_cmd[:command])
|
249
|
+
|
250
|
+
# if there is an error... check to see if this is the error handler
|
251
|
+
if @exception_manager.pending_error != nil
|
252
|
+
unless k == Sneaql::Core::Commands::SneaqlOnError
|
253
|
+
raise @exception_manager.pending_error
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
247
257
|
# instantiate a new instance of the command class
|
248
258
|
# and call it's action method with arguments
|
249
|
-
c =
|
259
|
+
c = k.new(
|
250
260
|
@jdbc_connection,
|
251
261
|
@expression_handler,
|
252
262
|
@exception_manager,
|
@@ -255,12 +265,7 @@ module Sneaql
|
|
255
265
|
@logger
|
256
266
|
)
|
257
267
|
|
258
|
-
|
259
|
-
unless c.class == Sneaql::Core::Commands::SneaqlOnError
|
260
|
-
raise @exception_manager.pending_error
|
261
|
-
end
|
262
|
-
end
|
263
|
-
|
268
|
+
# performs the work of the current command
|
264
269
|
c.action(*this_cmd[:arguments])
|
265
270
|
|
266
271
|
# check if there was an error from the action
|
data/lib/sneaql_lib/core.rb
CHANGED
@@ -231,7 +231,7 @@ module Sneaql
|
|
231
231
|
# @param [String] recordset_name name of the recordset in which to store the results
|
232
232
|
def action(recordset_name)
|
233
233
|
r = query_results
|
234
|
-
@logger.
|
234
|
+
@logger.info "adding #{r.length} recs as #{recordset_name}"
|
235
235
|
@recordset_manager.store_recordset(recordset_name, r)
|
236
236
|
rescue => e
|
237
237
|
@exception_manager.pending_error = e
|
@@ -252,6 +252,28 @@ module Sneaql
|
|
252
252
|
end
|
253
253
|
end
|
254
254
|
|
255
|
+
# runs the query then stores the array of hashes into the recordset hash
|
256
|
+
class SneaqlRemoveRecordset < Sneaql::Core::SneaqlCommand
|
257
|
+
Sneaql::Core::RegisterMappedClass.new(
|
258
|
+
:command,
|
259
|
+
'remove_recordset',
|
260
|
+
Sneaql::Core::Commands::SneaqlRemoveRecordset
|
261
|
+
)
|
262
|
+
|
263
|
+
# @param [String] recordset_name name of the recordset in which to store the results
|
264
|
+
def action(recordset_name)
|
265
|
+
@logger.info "removing recordset #{recordset_name}"
|
266
|
+
@recordset_manager.remove_recordset(recordset_name)
|
267
|
+
rescue => e
|
268
|
+
@exception_manager.pending_error = e
|
269
|
+
end
|
270
|
+
|
271
|
+
# argument types
|
272
|
+
def arg_definition
|
273
|
+
[:recordset]
|
274
|
+
end
|
275
|
+
end
|
276
|
+
|
255
277
|
# iterates a recordset and runs the sql statement for each record
|
256
278
|
class SneaqlIterateRecordset < Sneaql::Core::SneaqlCommand
|
257
279
|
Sneaql::Core::RegisterMappedClass.new(
|
@@ -299,6 +321,7 @@ module Sneaql
|
|
299
321
|
|
300
322
|
# @param [String] recordset recordset to iterate
|
301
323
|
def iterate_all_records(recordset)
|
324
|
+
raise Sneaql::Exceptions::RecordsetDoesNotExistError unless @recordset_manager.recordset.has_key?(recordset)
|
302
325
|
@logger.info "iterating recordset #{recordset}..."
|
303
326
|
@recordset_manager.recordset[recordset].each_with_index do |i, n|
|
304
327
|
@logger.debug("#{n + 1} of #{recordset}: #{i}")
|
@@ -60,6 +60,13 @@ module Sneaql
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
+
# Recordset check failure indicator
|
64
|
+
class RecordsetDoesNotExistError < BaseError
|
65
|
+
def initialize(msg = 'Specified ecordset does not exist')
|
66
|
+
super
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
63
70
|
# General error evaluating expression.
|
64
71
|
class ExpressionEvaluationError < BaseError
|
65
72
|
def initialize(msg = 'Error evaluating expression')
|
data/lib/sneaql_lib/recordset.rb
CHANGED
@@ -21,10 +21,20 @@ module Sneaql
|
|
21
21
|
recordset[name] = rs
|
22
22
|
end
|
23
23
|
|
24
|
+
# Deletes a recordset if it exists
|
25
|
+
# @param [String] name name for recordset to delete
|
26
|
+
def remove_recordset(name)
|
27
|
+
if @recordset.has_key?(name)
|
28
|
+
@recordset.delete(name)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
24
32
|
# Validates recordset. Must be an array of hashes with identical keys.
|
25
33
|
# @param [Array<Hash>] rs recordset to validate
|
26
34
|
def recordset_valid?(rs)
|
27
35
|
return false unless rs.class == Array
|
36
|
+
# empty recordset is valid
|
37
|
+
return true if rs == []
|
28
38
|
r1 = rs[0].keys
|
29
39
|
|
30
40
|
rs.each do |record|
|
@@ -68,7 +78,7 @@ module Sneaql
|
|
68
78
|
# takes in argument array as an argument
|
69
79
|
# returns array of expressions to be checked at run time
|
70
80
|
args.delete_at(0) # get rid of the first element, recordset ref
|
71
|
-
args.each_slice(4).to_a.map{ |x| { condition: x[0].downcase, field: x[1], operator: x[2], expression: x[3]}}
|
81
|
+
args.each_slice(4).to_a.map{ |x| { condition: x[0].downcase, field: x[1], operator: x[2], expression: x[3]} }
|
72
82
|
end
|
73
83
|
|
74
84
|
# applies a conditional expression set against a record.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sneaql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.20
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- jeremy winters
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|