rscript 0.6.1 → 0.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8aec962ed289a675c59189eb2bd7d5c8c28cbdb0e6c35e2fa127f9c7336f181d
4
- data.tar.gz: acda35d707dc3d0162b889f4920354de05f3d4621c2f5c8fc04a613bab57b5f2
3
+ metadata.gz: b07cead05d35529f8891fe210ec1c0b1d49c8cdf153ea67dff5f1e4c1f8e3175
4
+ data.tar.gz: ab3b6d8d7b72609adb786be4fdc46cc4d867c78a4bbebc1a993a7df8fbad6a8c
5
5
  SHA512:
6
- metadata.gz: 3432b133427da64d0e5efc87df4907751fe0e906e2bf711e2037fb6fc2d0d5e35a2400ee0e25421b2bc56d06275706b9bbf0ef9070049c823d16a7af1a6c68ea
7
- data.tar.gz: 74b615fe0c30f3828fde0f1fb5625f468fa6405ed510ccdc8571893dc9b63d1444d8cbe349cfc555023c26915c1c33081d1e8105f104368fb88a4d4fbce3f8e8
6
+ metadata.gz: 1d6380efacb9670cf49a7be6ec261b3769d1b813d639365952923b1d47dab024251e5d8050fdde69085d5206f98e0c40ba513a17de6f70cdfa9004414407dcf5
7
+ data.tar.gz: a880349b7f95b215cdb3589b4915cf39cc562cc22b6f86f0c28e1da84d05bd539dabf825a4121c4c0d44845221634067269e9eac7fdedd56efe57e138323abfd
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -3,11 +3,14 @@
3
3
  # file: rscript.rb
4
4
 
5
5
  # created: 1-Jul-2009
6
- # updated: 11-Aug-2018
6
+ # updated: 00-Mar-2019
7
7
 
8
8
  # modification:
9
9
 
10
- # 11-Aug-2018: Added the keyword auto: false to RxfHelper for clarity
10
+ # 00-Mar-2019: feature: An explicit path or implicit path now can be
11
+ # specified in the src attribute
12
+ # 05-Mar-2019: feature: Added the class RScriptRW for :get, :post typed jobs
13
+ # 13-Oct-2018: bug fix: The log is now only written when the log exists
11
14
  # 30-Jul-2018: feature: A list of job ids can now be returned
12
15
  # 28-Jul-2018: feature: Jobs are now looked up from a Hash object
13
16
  # 13-Jul-2018: bug fix: The use of a cache is now optional
@@ -25,7 +28,6 @@
25
28
  # 08-Aug-2013: re-enabled the hashcache;
26
29
  # 24-Jun-2011: disabled the hashcache
27
30
 
28
-
29
31
  # description
30
32
  # - This script executes Ruby script contained within an XML file.
31
33
  # - The XML file can be stored locally or on a website.
@@ -42,7 +44,6 @@
42
44
  # MIT license - basically you can do anything you like with the script.
43
45
  # http://www.opensource.org/licenses/mit-license.php
44
46
 
45
-
46
47
  require 'rscript_base'
47
48
  require 'hashcache'
48
49
  require 'rexle'
@@ -139,7 +140,7 @@ class RScript < RScriptBase
139
140
  rescue Exception => e
140
141
  params = {}
141
142
  err_label = e.message.to_s + " :: \n" + e.backtrace.join("\n")
142
- @log.debug 'rscrcript/error: ' + err_label
143
+ @log.debug 'rscrcript/error: ' + err_label if @log
143
144
  return err_label
144
145
  end
145
146
 
@@ -170,19 +171,79 @@ class RScript < RScriptBase
170
171
  puts 'args: ' + args.inspect if @debug
171
172
  rsfile = args[0]; args.shift
172
173
 
174
+ url = File.dirname rsfile
175
+ @url_dir = url[/(?:\w+:\/\/|.*)[^\/]*(\/.*)/,1]
176
+ @url_base = url[/(\w+:\/\/[^\/]+|.*)/]
177
+
173
178
  $rsfile = rsfile[/[^\/]+(?=\.rsf)/]
174
179
 
175
180
  a = @cache ? @rsf_cache.read(rsfile) { build_a(rsfile) } : build_a(rsfile)
176
181
  puts 'read_rsfdoc a: ' + a.inspect if @debug
177
182
 
178
- @url_base = rsfile[/\w+:\/\/[^\/]+/]
179
-
183
+
184
+
180
185
  return a
181
186
 
182
187
  end
183
188
 
184
189
  end
185
190
 
191
+
192
+ class RScriptRW < RScript
193
+
194
+ attr_accessor :type
195
+
196
+
197
+ def read(args=[])
198
+
199
+ puts 'inside read' if @debug
200
+ @log.info 'RScript/read: args: ' + args.inspect if @log
201
+ @log.info 'RScript/read: type: ' + type.inspect if @log
202
+
203
+ threads = []
204
+
205
+ if args.to_s[/\/\/job:/] then
206
+
207
+ ajob = ''
208
+
209
+ args.each_index do |i|
210
+ if args[i].to_s[/\/\/job:/] then
211
+ ajob = $'; args[i] = nil
212
+ end
213
+ end
214
+
215
+ args.compact!
216
+
217
+ if @debug then
218
+ puts 'type: ' + self.type.to_s.inspect
219
+ puts 'self.type: ' + self.type.to_s.inspect
220
+ end
221
+
222
+ a = read_rsfdoc(args)
223
+ job = a.find do |xy|
224
+ name, x = xy
225
+ name == ajob.to_sym and
226
+ (x[:attributes][:type] || self.type.to_s) == self.type.to_s
227
+ end.last
228
+
229
+ out, attr = job[:code], job[:attributes]
230
+
231
+ raise "job not found" unless out.length > 0
232
+ out
233
+
234
+ else
235
+ out = read_rsfdoc(args).map {|x| x.last[:code]}.join("\n")
236
+ end
237
+
238
+ @log.info 'RScript/read: code: ' + out.inspect if @log
239
+
240
+ [out, args]
241
+
242
+ end
243
+
244
+ end
245
+
246
+
186
247
  if __FILE__ == $0 then
187
248
  raw_args = ARGV
188
249
  rs = RScript.new()
@@ -7,6 +7,7 @@ require 'open-uri'
7
7
  require 'rxfhelper'
8
8
 
9
9
  class RScriptBase
10
+ using ColouredText
10
11
 
11
12
  def initialize(debug: false)
12
13
  @debug = debug
@@ -19,7 +20,7 @@ class RScriptBase
19
20
  protected
20
21
 
21
22
  def read_script(script)
22
- puts 'inside read_script' if @debug
23
+ puts 'inside read_script'.info if @debug
23
24
  out_buffer = ''
24
25
 
25
26
  src = script.attributes[:src]
@@ -34,8 +35,20 @@ class RScriptBase
34
35
  end
35
36
 
36
37
  def read_sourcecode(rsf)
37
- puts 'inside read_sourcecode' if @debug
38
- buffer, _ = RXFHelper.read rsf, auto: false
38
+
39
+ puts 'inside read_sourcecode'.info if @debug
40
+ #@log.debug 'rsf: ' + rsf.inspect if @log
41
+ #@log.debug 'url_base: ' + @url_base.inspect if @log
42
+
43
+ path = case rsf
44
+ when /^\//
45
+ @url_base =~ /^\// ? rsf : File.join(@url_base, rsf)
46
+ when /\w+:/ then rsf
47
+ else
48
+ File.join(@url_base, @url_dir, rsf)
49
+ end
50
+
51
+ buffer, _ = RXFHelper.read path, auto: false
39
52
  return buffer
40
53
  end
41
54
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rscript
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,28 +10,32 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE3MTEwNzExMjQwMVoXDTE4MTEwNzExMjQwMVowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBALgKH/MjSfa8qrRYhFDKWD6qDMnQavDaCv9rxzQW0ku0GRDuf4De9ewMZrYg
19
- +ENxRKsYQefyfYL6+ddWhD4K9+rNsEhLasMDIScwthXbWeeCuZvLgYCS5gFp1ciV
20
- 4aL8S7x2QdephSMOaouhYVYV/2N+uxDhCD9rdB2XCfdjWBg+dSCdbJRO/pQ8vr1j
21
- tZE2WaCgvZq6XBB4+pqYsC/ekjRaOGXc1TfwBP/WYmjTYCVYmlhN2rJG0vfp9Zxy
22
- xAjliP6u2t4NMZY2kBo3W+bCySwPeZPflgI8MAlBln9y9GHPO3zndD14du5fR9Ui
23
- Czd6gzEW6Ra3BoZmK+D6UfUYGh8CAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUVTzGTFtV6+VIt+oV5ksQmdzKtP4wJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAs93QhCVT
27
- FUsRHEhQSWzHXjrz91vttIT2xamtOB/EL6V1pP+lTck8jkuejn0Xh4pv8BrbWsDN
28
- XB+0ypuCqjWm6uQfLMaeoCUec0ue+gfyqU6XtosViTyXlIarGr/QSPBaMMamCcFv
29
- eApQIEUoxne7bRBHlN9hk+9GDbMhi3gV34pGWwIAEnUzJQgmN/YFy0ix5XJTpfgA
30
- xj+tZ4/g/En7EMods00s7POLSpHhvN7LQT8nRttEmIm0AXNeZ7tSfxRZ4n7hgEQM
31
- TqGxWMRGelsOt2zNIFH+8d4Yz1dYsNbhK66Q8KRR2vHoT/9T3IJGBPHdsR6Kl6yB
32
- e5SlxbsP/R/Leg==
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwNjExMTk1ODQ5WhcN
15
+ MjEwNjExMTk1ODQ5WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCr9LE7
17
+ DfF2g/RJM4/NLacFBrB8XPH+P4qIJaMFS70S+tc5gp1bs84p3ew9hNPa2ObnqVDN
18
+ eqsert4yUH+stWv/lYjB3Uv/ieDblRw0IQwd9BXNH+F+VVZ6k5fzWUbBGQFy77kS
19
+ 87HE55uyN6DFqhU7/pJ/0nU5oN6AHjyay6ZeVYSHBY67IvmauB+2O72PtCxVxfsG
20
+ +3gE2V6MlE+K5ylD/81O67XdL6+apDHir8tvdwmsiRosF/+ChUx/hQCPeibc/FYh
21
+ Qit56CUAD9RRBn2ORmmXtuuqXTTchJnrph7/fVCTvC7ihqggIDuNj5ny9RT9cylZ
22
+ POkbDTNS2uZykOsjLU4fyTOyoiIn7f/+MLoKSrLoGQVGYdN0mvJ8Cj9L+c9BuaQi
23
+ o/NRAqiJnT+zkZ6c5h+/lyRHPnqznqBcfguEX4te5IVeVzWirSmqXIZT1iGtT1XU
24
+ YMNt/kSxDywzOwL31V5vN8nO21bFQcQayhiynzIl93COIi09dH84/gq2iYUCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUPXCcM0IJ
26
+ 4sKYMh8Cb540vFI/NuQwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAnKI3iPdsojq86ufufV61Xkc14mpz+fUWU2VdroG9
29
+ huoZOAoN0Bb5hH+yUxp74Mdis4Dd/hQR7UmEyI2YenTCQBYVzRKCQn9pM1GNCLFT
30
+ axEP9+TDEUZ5p3d7zijxUHStLSN3sT07VlPAJi1epgApr1VWUPZeope+LzJ4FgIV
31
+ yNQvC+tEvCDRt9AlYrqLkBRP/13Y3QzRt9BAHTECvI4w0TFt+QSjsn0/S56lMmMa
32
+ CZEcadTp4hkcSmMIe7A7vtxVHe849KYfzEYi/qtO4LS982Z+S/ux7FXXUmPDQOwD
33
+ m5SFg/ZFmb7WExgWgNKbYrUWEmSsm+xe0mlbUGEnWSLt/uNpOBLGM5IJGpX+5JQ3
34
+ uWeajwwVVZPE2QKim8r6XvB4MTDCnxuvjRopZt7gL5sO7M3Xo6xN9D1lEc38waAp
35
+ +FYkMWMJr0Q+j8gatLKPMMXUVyXLLdoSrSf7XsgtksSmBAw0g5bWydgHUgly8WES
36
+ tOpPd7kzbjjcuqoPnHSqclFI
33
37
  -----END CERTIFICATE-----
34
- date: 2018-08-11 00:00:00.000000000 Z
38
+ date: 2020-06-11 00:00:00.000000000 Z
35
39
  dependencies:
36
40
  - !ruby/object:Gem::Dependency
37
41
  name: hashcache
@@ -57,42 +61,42 @@ dependencies:
57
61
  name: rxfhelper
58
62
  requirement: !ruby/object:Gem::Requirement
59
63
  requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '0.8'
63
64
  - - ">="
64
65
  - !ruby/object:Gem::Version
65
- version: 0.8.0
66
+ version: 1.0.0
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.0'
66
70
  type: :runtime
67
71
  prerelease: false
68
72
  version_requirements: !ruby/object:Gem::Requirement
69
73
  requirements:
70
- - - "~>"
71
- - !ruby/object:Gem::Version
72
- version: '0.8'
73
74
  - - ">="
74
75
  - !ruby/object:Gem::Version
75
- version: 0.8.0
76
+ version: 1.0.0
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '1.0'
76
80
  - !ruby/object:Gem::Dependency
77
81
  name: rexle
78
82
  requirement: !ruby/object:Gem::Requirement
79
83
  requirements:
80
84
  - - "~>"
81
85
  - !ruby/object:Gem::Version
82
- version: '1.4'
86
+ version: '1.5'
83
87
  - - ">="
84
88
  - !ruby/object:Gem::Version
85
- version: 1.4.12
89
+ version: 1.5.6
86
90
  type: :runtime
87
91
  prerelease: false
88
92
  version_requirements: !ruby/object:Gem::Requirement
89
93
  requirements:
90
94
  - - "~>"
91
95
  - !ruby/object:Gem::Version
92
- version: '1.4'
96
+ version: '1.5'
93
97
  - - ">="
94
98
  - !ruby/object:Gem::Version
95
- version: 1.4.12
99
+ version: 1.5.6
96
100
  description:
97
101
  email: james@jamesrobertson.eu
98
102
  executables: []
@@ -121,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
125
  version: '0'
122
126
  requirements: []
123
127
  rubyforge_project:
124
- rubygems_version: 2.7.6
128
+ rubygems_version: 2.7.10
125
129
  signing_key:
126
130
  specification_version: 4
127
131
  summary: Reads or executes a job contained within a package (XML document), whereby
metadata.gz.sig CHANGED
Binary file