cpee-logging-xes-yaml 1.3.30 → 1.3.31

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: c2475b45c7eb85a9d59ad80640699cbf91cfc14b67e4ac7b3d64954b559d7a34
4
- data.tar.gz: a80f1b2d4e65322df40bd4e7a0234d2721cc44b9d5f1fa4adde78f84b1d8c7d4
3
+ metadata.gz: 84cb7628234c99607565dcf4a9de5131daada8bb1da09f5c04ab81afb599552c
4
+ data.tar.gz: 41188414f1a414f86f49d1480648f08b867a81a16277dec1278215eef2faecd0
5
5
  SHA512:
6
- metadata.gz: b0ddbf8911d7131428e8eb2a70457f22de9dc81f6a4fad430f894442bc1d62e236ff4a883f4460b9875a56b1b2734a1731169a92752faa6a59b97f221c18aa62
7
- data.tar.gz: c86ee1ba144e1d557505e405efc06d27ae180996add76376968f1e093220b95c4d030e85a3aed987e44a81679fa6f8be8d639a537cfe51b4b3574a718ba7a905
6
+ metadata.gz: f725d428357ac622f44da51c4a74321d13dc0be7efa51bfb2134decf298b3438b16b2dcb0f361a18d4fc73f30d08600a4b8fd1288e4a17643bded61bca76451e
7
+ data.tar.gz: abff6758b78d981b3efa34a61e9ba8a3ad82b6f31193b414d137eff5f6e454e18bb7c30cb6460a55960313466565b26901d14400d4d83a5a20892b06eacfee77
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee-logging-xes-yaml"
3
- s.version = "1.3.30"
3
+ s.version = "1.3.31"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0-or-later"
6
6
  s.summary = "Logging for the cloud process execution engine (cpee.org)"
@@ -48,7 +48,7 @@ def wrap(s, width=78, indent=19, extra_indent=2)
48
48
  return lines.join "\n"
49
49
  end
50
50
 
51
- TEMPLATE_XES_XML = <<-END
51
+ TEMPLATE_XES_XML_START = <<-END
52
52
  <log xmlns="http://www.xes-standard.org/" xes.version="2.0" xes.features="nested-attributes">
53
53
  <string key="creator" value="cpee.org"/>
54
54
  <extension name="Time" prefix="time" uri="http://www.xes-standard.org/time.xesext"/>
@@ -70,7 +70,18 @@ TEMPLATE_XES_XML = <<-END
70
70
  <string key="cpee:lifecycle:transition" value="activity/calling"/>
71
71
  <date key="time:timestamp" value="__NOTSPECIFIED__"/>
72
72
  </global>
73
- <trace/>
73
+ END
74
+ TEMPLATE_XES_XML_TRC = <<-END
75
+ <trace xmlns="http://www.xes-standard.org/"/>
76
+ END
77
+ TEMPLATE_XES_XML_EVT = <<-END
78
+ <event xmlns="http://www.xes-standard.org/"/>
79
+ END
80
+ TEMPLATE_XES_XML_MID = <<-END
81
+ <trace>
82
+ END
83
+ TEMPLATE_XES_XML_END = <<-END
84
+ </trace>
74
85
  </log>
75
86
  END
76
87
 
@@ -86,16 +97,27 @@ def rec_type(it)
86
97
  end
87
98
  end
88
99
 
100
+ def format_secs(s)
101
+ return 'long' if s.infinite?
102
+ s = s.to_i
103
+ m = s / 60
104
+ m < 0 ? "#{s}s" : "#{'%02d' % m}m #{'%02d' % (s%60)}s"
105
+ end
106
+
89
107
  def rec_a_insert(event,node,level=0)
90
108
  event.each do |i|
91
109
  tnode = node
92
110
  case i
93
111
  when Hash
112
+ tnode = node.add('x:list', 'key' => 'element')
94
113
  rec_insert(i,tnode,level+1)
95
114
  when Array
96
- rec_a_insert(i,tnode,level+1)
115
+ tnode = node.add('x:list', 'key' => 'element')
116
+ rec_insert(i,tnode,level+1)
97
117
  when String
98
- node.add(rec_type(i), 'key' => i, 'value' => (i.empty? ? "__UNSPECIFIED__" : i))
118
+ node.add(rec_type(i), 'key' => 'element', 'value' => (i.empty? ? "__UNSPECIFIED__" : i))
119
+ when Integer, Float
120
+ node.add(rec_type(i), 'key' => 'element', 'value' => i)
99
121
  end
100
122
  end
101
123
  end
@@ -240,7 +262,7 @@ ARGV.options { |opt|
240
262
  opt.on("--help", "-h", "This text") { puts opt; exit }
241
263
  opt.on("--add [STRING]", "-a [STRING]", "Add attribute for extract-all and extract-last. Example: -a 'filter=me'") { |a| x,y = a.split('='); attr[x] = y }
242
264
  opt.on("")
243
- opt.on(wrap("\"#{exname}\" will be call \"c\" in the examples for each command."))
265
+ opt.on(wrap("\"#{exname}\" will be called \"c\" in the examples for each command."))
244
266
  exname = 'c'
245
267
  opt.on("")
246
268
  opt.on(wrap("new [DIR] scaffolds a sample logging service. Add a handler to a cpee instance to experience the pleasure."))
@@ -403,26 +425,41 @@ elsif command == 'to-xes-xml'
403
425
  end
404
426
 
405
427
  path.each do |f|
406
- xml = XML::Smart.string(TEMPLATE_XES_XML)
407
- xml.register_namespace 'x', 'http://www.xes-standard.org/'
428
+ fname = File.basename(f,'.xes.yaml') + '.xes.xml'
429
+ File.write(fname,TEMPLATE_XES_XML_START)
408
430
 
409
431
  io = File.open(f)
432
+ count = 1
433
+ start = Time.now
434
+ total = `grep -c -e '---' #{f}`.to_f
435
+ percent = 0
436
+ duration = 0
410
437
  YAML.load_stream(io) do |e|
438
+ percent = count/total
439
+ diff = Time.now - start
440
+ duration = diff/percent
441
+ print "#{"%0#{Math.log10(total).to_i + 1}d" % count}/#{total.to_i} #{'%05.2f' % (percent*100)}% (#{format_secs(duration-diff)} left) \r" if (count % 1000) == 0
442
+ count += 1
411
443
  if trace = e.dig('log','trace')
444
+ xml = XML::Smart.string(TEMPLATE_XES_XML_TRC)
445
+ xml.register_namespace 'x', 'http://www.xes-standard.org/'
412
446
  trace.each do |t,tv|
413
447
  xml.find('//x:trace').each do |ele|
414
448
  ele.add('x:string', 'key' => t, 'value' => tv)
415
449
  end
416
450
  end
451
+ File.write(fname, ' ' + xml.root.dump.gsub(/\n/,"\n ") + "\n", mode: 'a')
452
+ File.write(fname, TEMPLATE_XES_XML_MID, mode: 'a')
417
453
  end
418
454
  if e.dig('event')
419
- xml.find('//x:trace').each do |node|
420
- rec_insert(e.dig('event'),node.add('x:event'))
421
- end
455
+ xml = XML::Smart.string(TEMPLATE_XES_XML_EVT)
456
+ xml.register_namespace 'x', 'http://www.xes-standard.org/'
457
+ rec_insert(e.dig('event'),xml.root)
458
+ File.write(fname, ' ' + xml.root.dump.gsub(/\n/,"\n ") + "\n", mode: 'a')
422
459
  end
423
460
  end
424
-
425
- File.write(File.basename(f,'.xes.yaml') + '.xes.xml', xml.to_s)
461
+ File.write(fname, TEMPLATE_XES_XML_END, mode: 'a')
462
+ puts "#{count}/#{total.to_i} 100% (took #{format_secs(duration)}) \n"
426
463
  end
427
464
  else
428
465
  puts ARGV.options
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cpee-logging-xes-yaml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.30
4
+ version: 1.3.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler