petri 0.0.4 → 0.0.5
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 +4 -4
- data/lib/petri/arc.rb +6 -2
- data/lib/petri/net_loader.rb +6 -4
- data/lib/petri/transition.rb +8 -0
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f5711021e572160e00d1d141aaeeb47da66274cf
|
|
4
|
+
data.tar.gz: '058e4c797e75c1ec1c47ac0941f52152c539b8cb'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 771dedaff51498bcbb60b923860727be7071fb285038aef804be7db25aea38af0982749c3cf04a84582dc09f660c97b5414de9d5cdf46c82578485ae4dd30958
|
|
7
|
+
data.tar.gz: 1960751dfdd05e484516b99dfab8e021737c18e94cf22a3958c82a27385c3ffecee9c7c4911b3282357c291dc2a9dfc54067de74b39f816a508af6aa6fbc2455
|
data/lib/petri/arc.rb
CHANGED
|
@@ -2,8 +2,8 @@ module Petri
|
|
|
2
2
|
class Arc < Element
|
|
3
3
|
attr_reader :from_node, :to_node, :type
|
|
4
4
|
|
|
5
|
-
def initialize(net, from: nil, to: nil, type: nil, guid: nil, production_rule: nil, guard: nil)
|
|
6
|
-
super(net, {guid: guid, production_rule: production_rule, guard: guard})
|
|
5
|
+
def initialize(net, from: nil, to: nil, type: nil, guid: nil, production_rule: nil, guard: nil, timer_rule: nil)
|
|
6
|
+
super(net, {guid: guid, production_rule: production_rule, guard: guard, timer_rule: timer_rule})
|
|
7
7
|
@from_node = from
|
|
8
8
|
@to_node = to
|
|
9
9
|
@type = type.try(:to_sym) || :regular
|
|
@@ -29,6 +29,10 @@ module Petri
|
|
|
29
29
|
data[:guard]
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
+
def timer_rule
|
|
33
|
+
data[:timer_rule]
|
|
34
|
+
end
|
|
35
|
+
|
|
32
36
|
def normalized_guard
|
|
33
37
|
self.class.normalize_guard(guard)
|
|
34
38
|
end
|
data/lib/petri/net_loader.rb
CHANGED
|
@@ -52,15 +52,15 @@ module Petri
|
|
|
52
52
|
# @param to_guid [String]
|
|
53
53
|
# @param type [String]
|
|
54
54
|
# @param production_rule [String, nil]
|
|
55
|
-
def add_arc(guid: nil, from_guid: , to_guid: , type: , production_rule: nil, guard: nil)
|
|
55
|
+
def add_arc(guid: nil, from_guid: , to_guid: , type: , production_rule: nil, guard: nil, timer_rule: nil)
|
|
56
56
|
from_node = node_by_guid(from_guid)
|
|
57
57
|
to_node = node_by_guid(to_guid)
|
|
58
58
|
|
|
59
59
|
if type == 'test'
|
|
60
|
-
@arcs << Arc.new(self, from: from_node, to: to_node, type: :regular, guid: guid, guard: guard)
|
|
60
|
+
@arcs << Arc.new(self, from: from_node, to: to_node, type: :regular, guid: guid, guard: guard, timer_rule: timer_rule)
|
|
61
61
|
@arcs << Arc.new(self, from: to_node, to: from_node, type: :regular, guid: guid)
|
|
62
62
|
else
|
|
63
|
-
@arcs << Arc.new(self, from: from_node, to: to_node, type: type.try(:to_sym), guid: guid, production_rule: production_rule, guard: guard)
|
|
63
|
+
@arcs << Arc.new(self, from: from_node, to: to_node, type: type.try(:to_sym), guid: guid, production_rule: production_rule, guard: guard, timer_rule: timer_rule)
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
66
|
|
|
@@ -91,7 +91,8 @@ module Petri
|
|
|
91
91
|
add_arc(from_guid: arc['from_guid'],
|
|
92
92
|
to_guid: transition.guid,
|
|
93
93
|
type: front_arc_type,
|
|
94
|
-
guard: arc['guard']
|
|
94
|
+
guard: arc['guard'],
|
|
95
|
+
timer_rule: arc['timer_rule'])
|
|
95
96
|
|
|
96
97
|
add_arc(from_guid: transition.guid,
|
|
97
98
|
to_guid: arc['from_guid'],
|
|
@@ -156,6 +157,7 @@ module Petri
|
|
|
156
157
|
to_guid: data['to_guid'],
|
|
157
158
|
type: data['type'],
|
|
158
159
|
production_rule: data['production_rule'],
|
|
160
|
+
timer_rule: data['timer_rule'],
|
|
159
161
|
guard: data['guard'])
|
|
160
162
|
end
|
|
161
163
|
end
|
data/lib/petri/transition.rb
CHANGED
|
@@ -37,6 +37,14 @@ module Petri
|
|
|
37
37
|
ingoing_arcs.select { |arc| arc.guard.present? }
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
+
def timer_arc
|
|
41
|
+
input_arcs.find { |arc| arc.timer_rule.present? }
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def timer_rule
|
|
45
|
+
timer_arc.try!(:timer_rule)
|
|
46
|
+
end
|
|
47
|
+
|
|
40
48
|
def inspect
|
|
41
49
|
"Petri::Transition<#{identifier}>"
|
|
42
50
|
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: petri
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sergei Zinin (einzige)
|
|
@@ -53,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
53
53
|
version: '0'
|
|
54
54
|
requirements: []
|
|
55
55
|
rubyforge_project:
|
|
56
|
-
rubygems_version: 2.
|
|
56
|
+
rubygems_version: 2.6.8
|
|
57
57
|
signing_key:
|
|
58
58
|
specification_version: 4
|
|
59
59
|
summary: Moves tokens around
|