petri 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|