cpee 2.1.20 → 2.1.24

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/css/ui.css +1 -1
  3. data/cockpit/templates/Coopis 2010.xml +8 -3
  4. data/cockpit/templates/IUPC arXiv:1104.3609 P34 1.xml +15 -8
  5. data/cockpit/templates/IUPC arXiv:1104.3609 P34 2.xml +15 -8
  6. data/cockpit/templates/IUPC arXiv:1104.3609 P34 3.xml +15 -8
  7. data/cockpit/templates/Track Test Local.xml +2 -1
  8. data/cockpit/templates/Track Test.xml +2 -1
  9. data/cockpit/templates/UR-VUE 2020 Manual Adjust.xml +5 -0
  10. data/cockpit/templates/UR-VUE 2020 Solution Baseline.xml +6 -8
  11. data/cockpit/templates/UR-VUE 2020 Solution NN.xml +6 -8
  12. data/cockpit/templates/UR-VUE 2020 Solution View.xml +5 -8
  13. data/cockpit/templates/UR-VUE 2020.xml +1 -8
  14. data/cockpit/templates/Worklist.xml +3 -1
  15. data/cockpit/themes/compact/rngs/call.rng +110 -108
  16. data/cockpit/themes/compact/rngs/callmanipulate.rng +90 -87
  17. data/cockpit/themes/compact/rngs/parallel_branch.rng +1 -7
  18. data/cockpit/themes/compact/theme.js +136 -118
  19. data/cockpit/themes/control/rngs/call.rng +110 -108
  20. data/cockpit/themes/control/rngs/callmanipulate.rng +90 -87
  21. data/cockpit/themes/control/rngs/parallel_branch.rng +1 -7
  22. data/cockpit/themes/control/theme.js +149 -131
  23. data/cockpit/themes/default/rngs/call.rng +110 -108
  24. data/cockpit/themes/default/rngs/callmanipulate.rng +90 -87
  25. data/cockpit/themes/default/rngs/parallel_branch.rng +1 -7
  26. data/cockpit/themes/default/theme.js +136 -118
  27. data/cockpit/themes/extended/rngs/call.rng +110 -108
  28. data/cockpit/themes/extended/rngs/callmanipulate.rng +90 -87
  29. data/cockpit/themes/extended/rngs/parallel_branch.rng +1 -7
  30. data/cockpit/themes/extended/theme.js +136 -118
  31. data/cockpit/themes/model/rngs/call.rng +24 -22
  32. data/cockpit/themes/model/rngs/callmanipulate.rng +28 -26
  33. data/cockpit/themes/model/theme.js +114 -96
  34. data/cockpit/themes/packed/rngs/call.rng +110 -108
  35. data/cockpit/themes/packed/rngs/callmanipulate.rng +90 -87
  36. data/cockpit/themes/packed/rngs/parallel_branch.rng +1 -7
  37. data/cockpit/themes/packed/theme.js +136 -118
  38. data/cockpit/themes/preset/rngs/call.rng +110 -108
  39. data/cockpit/themes/preset/rngs/callmanipulate.rng +90 -87
  40. data/cockpit/themes/preset/rngs/parallel_branch.rng +1 -7
  41. data/cockpit/themes/preset/theme.js +136 -118
  42. data/cpee.gemspec +2 -1
  43. data/server/executionhandlers/ruby/connection.rb +27 -12
  44. data/tools/cpee +13 -6
  45. metadata +16 -2
@@ -13,6 +13,7 @@
13
13
  # <http://www.gnu.org/licenses/>.
14
14
 
15
15
  require 'charlock_holmes'
16
+ require 'mimemagic'
16
17
  require 'base64'
17
18
 
18
19
  class ConnectionWrapper < WEEL::ConnectionWrapperBase
@@ -199,7 +200,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
199
200
  @controller.notify("status/change", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position, :id => status.id, :message => status.message)
200
201
  end
201
202
  unless changed_dataelements.nil? || changed_dataelements.empty?
202
- de = dataelements.slice(*changed_dataelements).transform_values { |v| enc = detect_encoding(v); (enc == 'BINARY' ? convert_to_base64(v) : (enc == 'UTF-8' ? v : v.encode('UTF-8',enc))) }
203
+ de = dataelements.slice(*changed_dataelements).transform_values { |v| enc = detect_encoding(v); (enc == 'OTHER' ? v.inspect : (v.encode('UTF-8',enc) rescue convert_to_base64(v))) }
203
204
  @controller.notify("dataelements/change", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position, :changed => changed_dataelements, :values => de)
204
205
  end
205
206
  unless changed_endpoints.nil? || changed_endpoints.empty?
@@ -245,19 +246,25 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
245
246
 
246
247
  def detect_encoding(text)
247
248
  if text.is_a? String
248
- res = CharlockHolmes::EncodingDetector.detect(text)
249
- if res.is_a?(Hash) && res[:type] == :text && res[:encoding].match(/(ISO|UTF-8)/)
250
- res[:encoding]
249
+ if text.valid_encoding? && text.encoding.name == 'UTF-8'
250
+ 'UTF-8'
251
251
  else
252
- 'BINARY'
252
+ res = CharlockHolmes::EncodingDetector.detect(text)
253
+ if res.is_a?(Hash) && res[:type] == :text && res[:ruby_encoding] != "binary"
254
+ res[:encoding]
255
+ elsif res.is_a?(Hash) && res[:type] == :binary
256
+ 'BINARY'
257
+ else
258
+ 'ISO-8859-1'
259
+ end
253
260
  end
254
261
  else
255
- 'UTF-8'
262
+ 'OTHER'
256
263
  end
257
264
  end
258
265
 
259
266
  def convert_to_base64(text)
260
- 'data:application/octet-stream;base64,' + Base64::urlsafe_encode64(text)
267
+ ('data:' + MimeMagic.by_magic(text).type + ';base64,' + Base64::encode64(text)) rescue ('data:application/octet-stream;base64,' + Base64::encode64(text))
261
268
  end
262
269
 
263
270
  def structurize_result(result)
@@ -266,20 +273,28 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
266
273
  { 'name' => r.name, 'data' => r.value }
267
274
  elsif r.is_a? Riddl::Parameter::Complex
268
275
  res = if r.mimetype == 'application/json'
269
- JSON::parse(r.value.read) rescue nil
276
+ ttt = JSON::parse(r.value.read) rescue nil
277
+ if ttt.nil?
278
+ ''
279
+ else
280
+ enc = detect_encoding(ttt)
281
+ enc == 'OTHER' ? ttt.inspect : (ttt.encode('UTF-8',enc) rescue convert_to_base64(ttt))
282
+ end
270
283
  elsif r.mimetype == 'text/plain' || r.mimetype == 'text/html'
271
284
  ttt = r.value.read
272
285
  ttt = ttt.to_f if ttt == ttt.to_f.to_s
273
286
  ttt = ttt.to_i if ttt == ttt.to_i.to_s
274
- ttt
287
+ enc = detect_encoding(ttt)
288
+ enc == 'OTHER' ? ttt.inspect : (ttt.encode('UTF-8',enc) rescue convert_to_base64(ttt))
275
289
  else
276
- r.value.read
290
+ convert_to_base64(r.value.read)
291
+ r.value.rewind
277
292
  end
278
- enc = detect_encoding(res)
293
+
279
294
  tmp = {
280
295
  'name' => r.name == '' ? 'result' : r.name,
281
296
  'mimetype' => r.mimetype,
282
- 'data' => (enc == 'BINARY' ? convert_to_base64(res) : (enc == 'UTF-8' ? res : res.encode('UTF-8',enc)))
297
+ 'data' => res.to_s
283
298
  }
284
299
  r.value.rewind
285
300
  tmp
data/tools/cpee CHANGED
@@ -116,13 +116,20 @@ elsif command == 'convert'
116
116
  doc.root.prepend('x:executionhandler','ruby')
117
117
  end
118
118
  end rescue nil
119
+ doc.find('//d:parallel_branch/@pass').delete_all!
120
+ doc.find('//d:parallel_branch/@local').delete_all!
121
+ doc.find('//d:call').each do |c|
122
+ c.find('d:annotations').first.add c.find('d:parameters/d:_context_data_analysis')
123
+ c.find('d:annotations').first.add c.find('d:parameters/d:_report')
124
+ if c.find('d:documentation').empty?
125
+ node = c.add('d:documentation')
126
+ node.add c.find('d:input')
127
+ node.add c.find('d:output')
128
+ node.add c.find('d:implementation')
129
+ node.add c.find('d:code[d:description]')
130
+ end
131
+ end
119
132
  doc.find('//x:handlerwrapper').delete_all!
120
- doc.find('//x:start_url').each do |e|
121
- e.text = 'https://cpee.org/flow/start/url/'
122
- end rescue nil
123
- doc.find('//x:start_git').each do |e|
124
- e.text = 'https://cpee.org/flow/start/git/'
125
- end rescue nil
126
133
  doc.find('//d:finalize | //d:update | //d:prepare | //d:rescue').each do |e|
127
134
  if e.parent.qname.name != 'code'
128
135
  n = e.parent
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cpee
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.20
4
+ version: 2.1.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: tools
12
12
  cert_chain: []
13
- date: 2021-10-04 00:00:00.000000000 Z
13
+ date: 2021-11-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: riddl
@@ -116,6 +116,20 @@ dependencies:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
118
  version: '0'
119
+ - !ruby/object:Gem::Dependency
120
+ name: mimemagic
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ type: :runtime
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
119
133
  description: see http://cpee.org
120
134
  email: juergen.mangler@gmail.com
121
135
  executables: