spstrigger_execute 0.4.6 → 0.4.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +2 -1
- data/lib/spstrigger_execute.rb +56 -26
- metadata +29 -29
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54733c7cf3c98b166c5f9f95c063b3f1169c2261
|
4
|
+
data.tar.gz: f6fd39b7143d0a2061e88f1c51a0eb57064483be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee4eb71de594b313107b3a651083520bbd16422228e6d1cd20f7380fd22e945ccd76f4ab4274e5407d238b62d2f6ddabe95a200eb9c52b65be089239d483f5f2
|
7
|
+
data.tar.gz: 5c7fd03fdd574fbd138ed9469f74062d041dfa85eab572f387888a10cff0496c0df787a1670f672b2057405d73a5e617b5f779e2e8ffe0e23047358dcf74b8b7
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
ˌ��ë"����&B�b0c������M0����a�!�>���O��� �#�V��������1%���$K�B������)x���B b��4h����d~��4X�
|
2
|
+
q�ϱ�G��9%�K�D�'Ӊ�@]����j4~7q���g�P-��?Ŀ�74�G�}�x��G��~x�o���L�
|
data/lib/spstrigger_execute.rb
CHANGED
@@ -9,10 +9,11 @@ require 'xmlregistry_objects'
|
|
9
9
|
|
10
10
|
class SPSTriggerExecute
|
11
11
|
|
12
|
-
def initialize(x, reg=nil, polyrexdoc=nil, rws=nil,
|
12
|
+
def initialize(x, reg=nil, polyrexdoc=nil, rws=nil, log: nil)
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
log.info 'SPSTriggerExecute/initialize: active' if log
|
15
|
+
|
16
|
+
@rws, @log = rws, log
|
16
17
|
|
17
18
|
@patterns = if x.is_a? Dynarex then
|
18
19
|
|
@@ -23,24 +24,35 @@ class SPSTriggerExecute
|
|
23
24
|
else
|
24
25
|
|
25
26
|
buffer, _ = RXFHelper.read x
|
26
|
-
dx = buffer[/^<\?dynarex /] ? Dynarex.new.import(buffer) :
|
27
|
+
dx = buffer[/^<\?dynarex /] ? Dynarex.new.import(buffer) : \
|
28
|
+
Dynarex.new(buffer)
|
27
29
|
dx.to_h
|
28
30
|
|
29
31
|
end
|
30
|
-
|
32
|
+
|
33
|
+
|
34
|
+
|
31
35
|
if reg and polyrexdoc then
|
32
|
-
|
33
|
-
|
36
|
+
log.info 'SPSTriggerExecute/initialize: before reg' if log
|
37
|
+
puts 'reg: ' + reg.inspect
|
38
|
+
xro = XMLRegistryObjects.new(reg, polyrexdoc, log: log)
|
39
|
+
log.info 'SPSTriggerExecute/initialize: after reg' if log
|
34
40
|
@h = xro.to_h
|
35
41
|
define_methods = @h.keys.map {|x| "def #{x}() @h[:#{x}] end"}
|
36
42
|
instance_eval define_methods.join("\n")
|
37
|
-
|
43
|
+
|
44
|
+
if log then
|
45
|
+
log.info 'SPSTriggerExecute/initialize: define_methods : ' +
|
46
|
+
self.public_methods.sort.inspect
|
47
|
+
end
|
38
48
|
end
|
39
49
|
|
40
50
|
end
|
41
51
|
|
42
|
-
def match_and_execute(
|
43
|
-
|
52
|
+
def match_and_execute(topic: nil, message: message)
|
53
|
+
|
54
|
+
@log.info 'SPSTriggerExecute/match_and_execute: active' if @log
|
55
|
+
results = find_match topic, message
|
44
56
|
prepare_jobs(results)
|
45
57
|
end
|
46
58
|
|
@@ -53,8 +65,9 @@ class SPSTriggerExecute
|
|
53
65
|
|
54
66
|
private
|
55
67
|
|
56
|
-
def find_match(topicx, message)
|
57
|
-
|
68
|
+
def find_match(topicx=nil, message)
|
69
|
+
|
70
|
+
|
58
71
|
@patterns.map.with_index.inject([]) do |r, row|
|
59
72
|
|
60
73
|
h, i = row
|
@@ -64,18 +77,19 @@ class SPSTriggerExecute
|
|
64
77
|
|
65
78
|
index ||= i + 1
|
66
79
|
|
67
|
-
# note: the index is only present if there is a duplicate
|
80
|
+
# note: the index is only present if there is a duplicate
|
81
|
+
# Dynarex record default key
|
68
82
|
|
69
83
|
t, m = topic.length > 0, msg.length > 0
|
70
84
|
|
71
|
-
result = if t && m then
|
85
|
+
result = if topicx && t && m then
|
72
86
|
|
73
87
|
r1 = topicx.match(/#{topic}/)
|
74
88
|
r2 = message.match(/#{msg}/)
|
75
89
|
|
76
90
|
{topic: r1, msg: r2, index: index} if r1 && r2
|
77
91
|
|
78
|
-
elsif t then
|
92
|
+
elsif topicx && t then
|
79
93
|
|
80
94
|
r1 = topicx.match(/#{topic}/)
|
81
95
|
{topic: r1, index: index} if r1
|
@@ -90,7 +104,10 @@ class SPSTriggerExecute
|
|
90
104
|
|
91
105
|
if result and conditions.length > 0 then
|
92
106
|
|
93
|
-
log
|
107
|
+
if @log then
|
108
|
+
@log.info 'SPSTriggerExecute/find_match: conditions: ' +
|
109
|
+
conditions.inspect
|
110
|
+
end
|
94
111
|
|
95
112
|
named_match = message.match(/#{msg}/)
|
96
113
|
|
@@ -105,9 +122,14 @@ class SPSTriggerExecute
|
|
105
122
|
else ''
|
106
123
|
end
|
107
124
|
|
125
|
+
|
108
126
|
success = eval (variable_assignment + conditions)
|
109
127
|
|
110
|
-
log
|
128
|
+
if @log then
|
129
|
+
@log.info 'SPSTriggerExecute/find_match: success : ' +
|
130
|
+
success.inspect
|
131
|
+
end
|
132
|
+
|
111
133
|
result = nil unless success
|
112
134
|
end
|
113
135
|
|
@@ -116,30 +138,36 @@ class SPSTriggerExecute
|
|
116
138
|
end
|
117
139
|
end
|
118
140
|
|
119
|
-
def log(s)
|
120
|
-
if @log then
|
121
|
-
@logger.debug s
|
122
|
-
end
|
123
|
-
end
|
124
141
|
|
125
142
|
# not yet implemented
|
143
|
+
=begin
|
126
144
|
def method_missing(method_name, *args)
|
127
|
-
|
145
|
+
|
128
146
|
job = args.shift
|
129
147
|
# Rsc object call goes here
|
148
|
+
@log.debug 'package: ' + package.inspect
|
130
149
|
@rws.run_job package=method_name, job, {}, args
|
131
150
|
end
|
151
|
+
=end
|
132
152
|
|
133
153
|
def prepare_jobs(results)
|
154
|
+
|
155
|
+
@log.info 'SPSTriggerExecute/prepare_jobs: active' if @log
|
134
156
|
|
135
157
|
results.inject([]) do |r,h|
|
158
|
+
|
159
|
+
if @log then
|
160
|
+
@log.info 'SPSTriggerExecute/prepare_jobs: inside inject h: ' +
|
161
|
+
h.inspect
|
162
|
+
end
|
136
163
|
|
137
164
|
a = []
|
138
165
|
a += h[:topic].captures if h[:topic] && h[:topic].captures.any?
|
139
166
|
a += h[:msg].captures if h[:msg]
|
140
167
|
|
141
168
|
jobs = @patterns[h[:index].to_i - 1][:job]
|
142
|
-
|
169
|
+
|
170
|
+
|
143
171
|
jobs.split(/\s*;\s*/).each do |job|
|
144
172
|
|
145
173
|
job_args = job.split + a
|
@@ -173,7 +201,9 @@ class SPSTriggerExecute
|
|
173
201
|
|
174
202
|
end
|
175
203
|
end
|
176
|
-
|
204
|
+
|
205
|
+
@log.info 'SPSTriggerExecute/prepare_jobs: result: ' if @log
|
206
|
+
|
177
207
|
r
|
178
208
|
|
179
209
|
end
|
@@ -190,4 +220,4 @@ class SPSTriggerExecute
|
|
190
220
|
t
|
191
221
|
end
|
192
222
|
|
193
|
-
end
|
223
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spstrigger_execute
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -12,26 +12,26 @@ cert_chain:
|
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
|
14
14
|
YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
|
15
|
-
|
15
|
+
8ixkARkWAmV1MB4XDTE3MTAyOTEwMjIwM1oXDTE4MTAyOTEwMjIwM1owSDESMBAG
|
16
16
|
A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
|
17
17
|
EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
ggEBALdpz4D9ctI58pEE/7Web5ATNz9Iz5wRTDyWPZXLK2ND5LBWib5zaBBBiV1q
|
19
|
+
RBDH7sqkmUpPTUFcqx9cDHpArcqomCHd9q40muLlYjaUvFfxmDBJIBX7qoY0HdEm
|
20
|
+
e5cQRhdH/KeLPnYrVeI1Thp+hr2FjRYboLXh+/z8iFUiCO3gLZcPhnHR2ovWYqYF
|
21
|
+
ZgEGgVrngikLKrQ2cASQj7QU/SjJlQpS/WDEB5MEKKnu6xmA561uzHYcu9fVWyvD
|
22
|
+
YvFkQjtscHw5u7vPPYTEqiUb8UruRnBYfLp8lnnLIIwEEZcLYXvksV2LstE4gLaN
|
23
|
+
O576yhzgipq30mfIEE9V3LMsYPMCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
|
24
|
+
DwQEAwIEsDAdBgNVHQ4EFgQUwV3xbv465FPDt+UUsUZoA8eSTeswJgYDVR0RBB8w
|
25
25
|
HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
26
|
+
c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEANq0T/0Wo
|
27
|
+
vWGM1aDHmvxq0bmOn7BBtXCODQY410+OWlne1smLJfEKhW9lcyPW7KW5WiSt+HRD
|
28
|
+
mtL30aH2fOBx26IvnjIQeZgQrDZEicM58ZWtWU1EqUHNc7z/+YFXk693iDp2cCt4
|
29
|
+
tCKOGXHyYQfEdfa7B5jhUthtWyMQnvIX2k3gTEB1keesGCvKxFDdh6pSBXpgge2T
|
30
|
+
FBo7GZfN5O1E1SqOqPCgwGBZwF9C46Iu2HXroM9vxhNgT2N893mWYlNmmDxB6VFD
|
31
|
+
Fb4PX9Gy1KygSUYIf5FBCAghq1QMa/KLXbYAar3QWRmU/0Uke/W3lSJt9OuQNJlF
|
32
|
+
na7EIuI+Z46Jhw==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
34
|
+
date: 2017-10-29 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: dynarex
|
@@ -39,20 +39,20 @@ dependencies:
|
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '1.
|
42
|
+
version: '1.7'
|
43
43
|
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.
|
45
|
+
version: 1.7.26
|
46
46
|
type: :runtime
|
47
47
|
prerelease: false
|
48
48
|
version_requirements: !ruby/object:Gem::Requirement
|
49
49
|
requirements:
|
50
50
|
- - "~>"
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: '1.
|
52
|
+
version: '1.7'
|
53
53
|
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 1.
|
55
|
+
version: 1.7.26
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: chronic_between
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -62,7 +62,7 @@ dependencies:
|
|
62
62
|
version: '0.3'
|
63
63
|
- - ">="
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version: 0.3.
|
65
|
+
version: 0.3.1
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
68
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -72,29 +72,29 @@ dependencies:
|
|
72
72
|
version: '0.3'
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.3.
|
75
|
+
version: 0.3.1
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
77
|
name: xmlregistry_objects
|
78
78
|
requirement: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0.
|
82
|
+
version: '0.7'
|
83
83
|
- - ">="
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: 0.
|
85
|
+
version: 0.7.4
|
86
86
|
type: :runtime
|
87
87
|
prerelease: false
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
90
|
- - "~>"
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version: '0.
|
92
|
+
version: '0.7'
|
93
93
|
- - ">="
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 0.
|
95
|
+
version: 0.7.4
|
96
96
|
description:
|
97
|
-
email: james@
|
97
|
+
email: james@jamesrobertson.eu
|
98
98
|
executables: []
|
99
99
|
extensions: []
|
100
100
|
extra_rdoc_files: []
|
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
120
|
version: '0'
|
121
121
|
requirements: []
|
122
122
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
123
|
+
rubygems_version: 2.6.13
|
124
124
|
signing_key:
|
125
125
|
specification_version: 4
|
126
126
|
summary: An SPS client built for reponding to messages which match keywords and conditions.
|
metadata.gz.sig
CHANGED
Binary file
|