cpee-eval-ruby 1.0.3 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cpee-eval-ruby.gemspec +2 -2
- data/lib/cpee-eval-ruby/implementation.rb +50 -13
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 577aa3b37ebdabc0e3795ce991e717caae16b93e5133c869116599fc1dcc68b6
|
4
|
+
data.tar.gz: cff8a4e9685315c2a81fdf82540fa6feb8e92418f0dc444df71b9700a7d10df9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64ae1dbf57a22276c15d1526fe7fe8b58be5f65427eb32ce2d2462c0b45c28cad5ff8b6acf765498987e9b49b068816727968277ebb46aa113558a6ff5d0e3df
|
7
|
+
data.tar.gz: 83d6516896b832b841b325499a7e9d946e7dc15d0b9dc69037cb1cb1dffa5386c5d371ed19008191aa29324a5ace2843577d91e9701095c9d669f58f76572228
|
data/cpee-eval-ruby.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cpee-eval-ruby"
|
3
|
-
s.version = "1.0.
|
3
|
+
s.version = "1.0.5"
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.license = "LGPL-3.0-or-later"
|
6
6
|
s.summary = "Ruby eval for the cloud process execution engine (cpee.org)"
|
@@ -21,5 +21,5 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.homepage = 'http://cpee.org/'
|
22
22
|
|
23
23
|
s.add_runtime_dependency 'riddl', '~> 1.0'
|
24
|
-
s.add_runtime_dependency 'cpee', '~> 2.1', '>= 2.1.
|
24
|
+
s.add_runtime_dependency 'cpee', '~> 2.1', '>= 2.1.69'
|
25
25
|
end
|
@@ -33,7 +33,29 @@ module CPEE
|
|
33
33
|
|
34
34
|
class DoIt < Riddl::Implementation #{{{
|
35
35
|
def exec(__struct,__code,result=nil,headers=nil)
|
36
|
-
|
36
|
+
__ret = {}
|
37
|
+
__cat = catch WEEL::Signal::Again do
|
38
|
+
__ret[:res] = __struct.instance_eval(__code)
|
39
|
+
WEEL::Signal::Proceed
|
40
|
+
end
|
41
|
+
if __cat.nil? || __cat == WEEL::Signal::Again
|
42
|
+
__ret[:signal] << 'Signal::Again'
|
43
|
+
end
|
44
|
+
rescue => err
|
45
|
+
__ret[:signal] = 'Signal::Error'
|
46
|
+
__ret[:signal_text] = (err.backtrace ? err.backtrace[0].gsub(/([\w -_]+):(\d+):in.*/,'\\1, Line \2: ') : '') + err.message
|
47
|
+
rescue WEEL::Signal::Again
|
48
|
+
__ret[:signal] = 'Signal::Again'
|
49
|
+
rescue WEEL::Signal::Error => err
|
50
|
+
__ret[:signal] = 'Signal::Error'
|
51
|
+
__ret[:signal_text] = (err.backtrace ? err.backtrace[0].gsub(/([\w -_]+):(\d+):in.*/,'\\1, Line \2: ') : '') + err.message
|
52
|
+
rescue WEEL::Signal::Stop
|
53
|
+
__ret[:signal] = 'Signal::Stop'
|
54
|
+
rescue SyntaxError => err
|
55
|
+
__ret[:signal] = 'Signal::SyntaxError'
|
56
|
+
__ret[:signal_text] = err.message
|
57
|
+
ensure
|
58
|
+
return __ret
|
37
59
|
end
|
38
60
|
|
39
61
|
def response
|
@@ -49,9 +71,11 @@ module CPEE
|
|
49
71
|
call_result = JSON::parse(@p.shift.value.read) if @p.any? && @p[0].name == 'call_result'
|
50
72
|
call_headers = JSON::parse(@p.shift.value.read) if @p.any? && @p[0].name == 'call_headers'
|
51
73
|
|
74
|
+
local = local[0] if local && local.is_a?(Array)
|
75
|
+
|
52
76
|
# symbolize keys, because JSON
|
53
77
|
dataelements.transform_keys!{|k| k.to_sym}
|
54
|
-
local.
|
78
|
+
local.transform_keys!{|k| k.to_sym} if local
|
55
79
|
endpoints.transform_keys!{|k| k.to_sym}
|
56
80
|
additional.transform_keys!{|k| k.to_sym}
|
57
81
|
additional.each_value do |v|
|
@@ -60,32 +84,45 @@ module CPEE
|
|
60
84
|
|
61
85
|
if status || call_result || call_headers
|
62
86
|
struct = WEEL::ManipulateStructure.new(dataelements,endpoints,status,local,additional)
|
63
|
-
exec struct, code, CPEE::EvalRuby::Translation::simplify_structurized_result(call_result), call_headers
|
64
|
-
|
65
|
-
|
87
|
+
execresult = exec struct, code, CPEE::EvalRuby::Translation::simplify_structurized_result(call_result), call_headers
|
88
|
+
|
89
|
+
send = []
|
90
|
+
send << Riddl::Parameter::Simple.new('result',execresult[:res])
|
91
|
+
if execresult[:signal]
|
92
|
+
send << Riddl::Parameter::Simple.new('signal',execresult[:signal])
|
93
|
+
send << Riddl::Parameter::Simple.new('signal_text',execresult[:signal_text] || '')
|
94
|
+
@status = 555
|
95
|
+
end
|
66
96
|
|
67
97
|
res = {}
|
68
98
|
struct.changed_data.each do |e|
|
69
99
|
res[e] = struct.data[e]
|
70
100
|
end
|
71
101
|
if res.any?
|
72
|
-
|
73
|
-
|
102
|
+
send << Riddl::Parameter::Complex.new('dataelements','application/json',JSON::generate(data)) if mode == :full
|
103
|
+
send << Riddl::Parameter::Complex.new('changed_dataelements','application/json',JSON::generate(res))
|
74
104
|
end
|
75
105
|
res = {}
|
76
106
|
struct.changed_endpoints.each do |e|
|
77
107
|
res[e] = struct.endpoints[e]
|
78
108
|
end
|
79
109
|
if res.any?
|
80
|
-
|
81
|
-
|
110
|
+
send << Riddl::Parameter::Complex.new('endpoints','application/json',JSON::generate(endpoints)) if mode == :full
|
111
|
+
send << Riddl::Parameter::Complex.new('changed_endpoints','application/json',JSON::generate(res))
|
82
112
|
end
|
83
|
-
|
84
|
-
|
113
|
+
send << Riddl::Parameter::Complex.new('changed_status','application/json',JSON::generate(status)) if struct.changed_status
|
114
|
+
send
|
85
115
|
else
|
86
116
|
struct = WEEL::ReadStructure.new(dataelements,endpoints,local,additional)
|
87
|
-
|
88
|
-
|
117
|
+
execresult = exec struct, code
|
118
|
+
send = []
|
119
|
+
send << Riddl::Parameter::Simple.new('result',execresult[:res])
|
120
|
+
if execresult[:signal]
|
121
|
+
send << Riddl::Parameter::Simple.new('signal',execresult[:signal])
|
122
|
+
send << Riddl::Parameter::Simple.new('signal_text',execresult[:signal_text] || '')
|
123
|
+
@status = 555
|
124
|
+
end
|
125
|
+
send
|
89
126
|
end
|
90
127
|
end
|
91
128
|
end #}}}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cpee-eval-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juergen eTM Mangler
|
@@ -33,7 +33,7 @@ dependencies:
|
|
33
33
|
version: '2.1'
|
34
34
|
- - ">="
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 2.1.
|
36
|
+
version: 2.1.69
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '2.1'
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 2.1.
|
46
|
+
version: 2.1.69
|
47
47
|
description: see http://cpee.org
|
48
48
|
email: juergen.mangler@gmail.com
|
49
49
|
executables:
|