ruby-xes 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +41 -0
- data/Rakefile +16 -0
- data/lib/xes.rb +18 -0
- data/lib/xes/attribute-accessor.rb +121 -0
- data/lib/xes/attribute.rb +201 -0
- data/lib/xes/classifier.rb +63 -0
- data/lib/xes/document.rb +48 -0
- data/lib/xes/event.rb +50 -0
- data/lib/xes/extension.rb +73 -0
- data/lib/xes/format-error.rb +15 -0
- data/lib/xes/global.rb +75 -0
- data/lib/xes/log.rb +158 -0
- data/lib/xes/trace.rb +57 -0
- data/lib/xes/version.rb +4 -0
- data/ruby-xes.gemspec +24 -0
- data/test/spec_attribute.rb +150 -0
- data/test/spec_classifier.rb +26 -0
- data/test/spec_document.rb +19 -0
- data/test/spec_event.rb +102 -0
- data/test/spec_extension.rb +34 -0
- data/test/spec_global.rb +131 -0
- data/test/spec_log.rb +90 -0
- data/test/spec_trace.rb +113 -0
- metadata +128 -0
data/test/spec_log.rb
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'xes'
|
2
|
+
|
3
|
+
describe "XES::Log" do
|
4
|
+
it "should equal" do
|
5
|
+
XES::Log.new.should == XES::Log.new
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should not equal" do
|
9
|
+
XES::Log.new.tap{|log| log.traces << XES::Trace.new}.should != XES::Log.new
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should set and get xes_version" do
|
13
|
+
XES::Log.new.tap{|log| log.xes_version = "1.1"}.xes_version.should == "1.1"
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should set and get xes_featuers" do
|
17
|
+
XES::Log.new.tap{|log| log.xes_features = ""}.xes_features.should == ""
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should set and get openxes_version" do
|
21
|
+
XES::Log.new.tap{|log| log.openxes_version = "1.9"}.openxes_version.should == "1.9"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should set and get xmlns" do
|
25
|
+
XES::Log.new.tap{|log| log.xmlns = "test"}.xmlns.should == "test"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should set and get extensions" do
|
29
|
+
XES::Log.new.tap do |log|
|
30
|
+
log.extensions << XES::EXTENSION[:semantic]
|
31
|
+
end.extensions.should.include(XES::EXTENSION[:semantic])
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should set and get classifiers" do
|
35
|
+
XES::Log.new.tap do |log|
|
36
|
+
log.classifiers << XES::Classifier.new("test", "time:timestamp")
|
37
|
+
end.classifiers.should.include(XES::Classifier.new("test", "time:timestamp"))
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should set and get event_global" do
|
41
|
+
XES::Log.new.tap do |log|
|
42
|
+
log.event_global.concept_name = "__INVALID__"
|
43
|
+
end.event_global.attributes.should.include(XES.string("concept:name", "__INVALID__"))
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should set and get trace_global" do
|
47
|
+
XES::Log.new.tap do |log|
|
48
|
+
log.trace_global.concept_name = "__INVALID__"
|
49
|
+
end.trace_global.attributes.should.include(XES.string("concept:name", "__INVALID__"))
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should set and get attributes" do
|
53
|
+
XES::Log.new.tap do |log|
|
54
|
+
log.attributes << XES.string("concept:name", "test")
|
55
|
+
end.attributes.should.include(XES.string("concept:name", "test"))
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should set and get traces" do
|
59
|
+
XES::Log.new.tap do |log|
|
60
|
+
log.traces << XES::Trace.new
|
61
|
+
end.traces.should.include(XES::Trace.new)
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should be formattable" do
|
65
|
+
XES::Log.new.tap do |log|
|
66
|
+
log.traces << XES::Trace.new.tap do |trace|
|
67
|
+
trace.events << XES::Event.new.tap do |event|
|
68
|
+
event.attributes << XES.string("concept:name", "test")
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end.should.formattable
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should be not formattable" do
|
75
|
+
XES::Log.new.tap do |log|
|
76
|
+
log.traces << XES::Trace.new
|
77
|
+
end.should.not.formattable
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should format as XML element" do
|
81
|
+
XES::Log.new.tap do |log|
|
82
|
+
log.traces << XES::Trace.new.tap do |trace|
|
83
|
+
trace.events << XES::Event.new.tap do |event|
|
84
|
+
event.attributes << XES.string("concept:name", "test")
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end.format.to_s.should ==
|
88
|
+
"<log xes.features='' xes.version='1.4' xmlns='http://www.xes-standard.org/'><trace><event><string key='concept:name' value='test'/></event></trace></log>"
|
89
|
+
end
|
90
|
+
end
|
data/test/spec_trace.rb
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
require 'xes'
|
2
|
+
|
3
|
+
describe "XES::Trace" do
|
4
|
+
it "should equal" do
|
5
|
+
XES::Trace.new.tap do |x|
|
6
|
+
x.attributes << XES.string("concept:name", "A")
|
7
|
+
x.events << XES::Event.new([XES.string("concept:name", "B")])
|
8
|
+
end.should ==
|
9
|
+
XES::Trace.new.tap do |x|
|
10
|
+
x.attributes << XES.string("concept:name", "A")
|
11
|
+
x.events << XES::Event.new([XES.string("concept:name", "B")])
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should not equal" do
|
16
|
+
XES::Trace.new.tap do |x|
|
17
|
+
x.attributes << XES.string("concept:name", "A")
|
18
|
+
x.events << XES::Event.new([XES.string("concept:name", "B")])
|
19
|
+
end.should !=
|
20
|
+
XES::Trace.new.tap do |x|
|
21
|
+
x.attributes << XES.string("concept:name", "A")
|
22
|
+
x.events << XES::Event.new([XES.string("concept:name", "C")])
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should get attributes" do
|
27
|
+
XES::Trace.new.tap do |x|
|
28
|
+
x.attributes << XES.string("concept:name", "A")
|
29
|
+
x.events << XES::Event.new([XES.string("concept:name", "B")])
|
30
|
+
end.attributes.should == [XES.string("concept:name", "A")]
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should get events" do
|
34
|
+
XES::Trace.new.tap do |x|
|
35
|
+
x.attributes << XES.string("concept:name", "A")
|
36
|
+
x.events << XES::Event.new([XES.string("concept:name", "B")])
|
37
|
+
end.events.should == [XES::Event.new([XES.string("concept:name", "B")])]
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should get concept:name" do
|
41
|
+
XES::Trace.new.tap do |x|
|
42
|
+
x.attributes << XES.string("concept:name", "A")
|
43
|
+
end.concept_name.should == "A"
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should set concept:name" do
|
47
|
+
XES::Trace.new.tap{|x| x.concept_name = "A"}.concept_name.should == "A"
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should get semantic:modelReference" do
|
51
|
+
XES::Trace.new.tap do |x|
|
52
|
+
x.attributes << XES.string("semantic:modelReference", "A")
|
53
|
+
end.semantic_modelReference.should == "A"
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should set semantic:modelReference" do
|
57
|
+
XES::Trace.new.tap{|x| x.semantic_modelReference = "A"}.semantic_modelReference.should == "A"
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should get identity:id" do
|
61
|
+
XES::Trace.new.tap do |x|
|
62
|
+
x.attributes << XES.id("identity:id", "A")
|
63
|
+
end.identity_id.should == "A"
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should set identity:id" do
|
67
|
+
XES::Trace.new.tap{|x| x.identity_id = "A"}.identity_id.should == "A"
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should get cost:total" do
|
71
|
+
XES::Trace.new.tap do |x|
|
72
|
+
x.attributes << XES.float("cost:total", "A")
|
73
|
+
end.cost_total.should == "A"
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should set cost:total" do
|
77
|
+
XES::Trace.new.tap{|x| x.cost_total = "A"}.cost_total.should == "A"
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should get cost:currency" do
|
81
|
+
XES::Trace.new.tap do |x|
|
82
|
+
x.attributes << XES.string("cost:currency", "AUD")
|
83
|
+
end.cost_currency.should == "AUD"
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should set cost:currency" do
|
87
|
+
XES::Trace.new.tap{|x| x.cost_currency = "AUD"}.cost_currency.should == "AUD"
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should be formattable" do
|
91
|
+
XES::Trace.new.tap{|x| x.events << XES::Event.new([XES.string("concept:name", "B")])}.should.formattable
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should be not formattable when the trace have no events" do
|
95
|
+
XES::Trace.new.should.not.formattable
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should be not formattable when the trace have only invalid event" do
|
99
|
+
XES::Trace.new.tap{|x| x.events << XES::Event.new}.should.not.formattable
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should raise FormatError because the trace has no events" do
|
103
|
+
should.raise(XES::FormatError) do
|
104
|
+
XES::Trace.new.format
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
it "should raise FormatError because events of the trace are invalid" do
|
109
|
+
should.raise(XES::FormatError) do
|
110
|
+
XES::Trace.new.tap{|x| x.events << XES::Event.new}.format
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
metadata
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby-xes
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Keita Yamaguchi
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-04-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bacon
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: yard
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.8.5
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.8.5
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: redcarpet
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
description: ruby-xes is a library for generating XES event log.
|
63
|
+
email:
|
64
|
+
- keita.yamaguchi@gmail.com
|
65
|
+
executables: []
|
66
|
+
extensions: []
|
67
|
+
extra_rdoc_files: []
|
68
|
+
files:
|
69
|
+
- .gitignore
|
70
|
+
- Gemfile
|
71
|
+
- LICENSE.txt
|
72
|
+
- README.md
|
73
|
+
- Rakefile
|
74
|
+
- lib/xes.rb
|
75
|
+
- lib/xes/attribute-accessor.rb
|
76
|
+
- lib/xes/attribute.rb
|
77
|
+
- lib/xes/classifier.rb
|
78
|
+
- lib/xes/document.rb
|
79
|
+
- lib/xes/event.rb
|
80
|
+
- lib/xes/extension.rb
|
81
|
+
- lib/xes/format-error.rb
|
82
|
+
- lib/xes/global.rb
|
83
|
+
- lib/xes/log.rb
|
84
|
+
- lib/xes/trace.rb
|
85
|
+
- lib/xes/version.rb
|
86
|
+
- ruby-xes.gemspec
|
87
|
+
- test/spec_attribute.rb
|
88
|
+
- test/spec_classifier.rb
|
89
|
+
- test/spec_document.rb
|
90
|
+
- test/spec_event.rb
|
91
|
+
- test/spec_extension.rb
|
92
|
+
- test/spec_global.rb
|
93
|
+
- test/spec_log.rb
|
94
|
+
- test/spec_trace.rb
|
95
|
+
homepage: https://github.com/pione/ruby-xes
|
96
|
+
licenses: []
|
97
|
+
post_install_message:
|
98
|
+
rdoc_options: []
|
99
|
+
require_paths:
|
100
|
+
- lib
|
101
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
102
|
+
none: false
|
103
|
+
requirements:
|
104
|
+
- - ! '>='
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
107
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
109
|
+
requirements:
|
110
|
+
- - ! '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
requirements: []
|
114
|
+
rubyforge_project:
|
115
|
+
rubygems_version: 1.8.24
|
116
|
+
signing_key:
|
117
|
+
specification_version: 3
|
118
|
+
summary: ruby-xes is a library for generating XES event log.
|
119
|
+
test_files:
|
120
|
+
- test/spec_attribute.rb
|
121
|
+
- test/spec_classifier.rb
|
122
|
+
- test/spec_document.rb
|
123
|
+
- test/spec_event.rb
|
124
|
+
- test/spec_extension.rb
|
125
|
+
- test/spec_global.rb
|
126
|
+
- test/spec_log.rb
|
127
|
+
- test/spec_trace.rb
|
128
|
+
has_rdoc:
|