edoors-ruby 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog +17 -1
- data/Gemfile.lock +1 -1
- data/examples/board.json +52 -0
- data/examples/board.rb +133 -0
- data/examples/data.json +8 -0
- data/examples/hello_world.json +4 -5
- data/examples/hello_world.rb +2 -2
- data/examples/links.json +96 -0
- data/examples/links.rb +121 -0
- data/lib/edoors.rb +9 -9
- data/lib/edoors/board.rb +40 -1
- data/lib/edoors/door.rb +62 -5
- data/lib/edoors/iota.rb +23 -5
- data/lib/edoors/link.rb +42 -22
- data/lib/edoors/particle.rb +207 -52
- data/lib/edoors/room.rb +92 -16
- data/lib/edoors/spin.rb +93 -6
- data/lib/version.rb +1 -1
- data/spec/board_spec.rb +39 -8
- data/spec/door_spec.rb +3 -3
- data/spec/{spot_spec.rb → iota_spec.rb} +20 -0
- data/spec/link_spec.rb +10 -13
- data/spec/particle_spec.rb +61 -21
- data/spec/room_spec.rb +28 -10
- data/spec/spin_spec.rb +15 -5
- data/test/test_iotas.rb +5 -6
- metadata +17 -26
data/spec/door_spec.rb
CHANGED
@@ -17,10 +17,10 @@ describe Edoors::Door do
|
|
17
17
|
it "require_p release_p" do
|
18
18
|
door = Edoors::Door.new 'hell', @spin
|
19
19
|
p0 = door.require_p Edoors::Particle
|
20
|
-
p1 = door.require_p
|
20
|
+
p1 = door.require_p
|
21
21
|
(p0===p1).should be_false
|
22
22
|
door.release_p p0
|
23
|
-
p2 = door.require_p
|
23
|
+
p2 = door.require_p
|
24
24
|
(p0===p2).should be_true
|
25
25
|
end
|
26
26
|
#
|
@@ -67,7 +67,7 @@ describe Edoors::Door do
|
|
67
67
|
p0.add_dst 'RELEASE'
|
68
68
|
p0.split_dst!
|
69
69
|
d0.process_p p0
|
70
|
-
p1 = d0.require_p
|
70
|
+
p1 = d0.require_p
|
71
71
|
p1.should be p0
|
72
72
|
p0.clear_dsts!
|
73
73
|
#
|
@@ -21,6 +21,26 @@ describe Edoors::Iota do
|
|
21
21
|
lambda { Edoors::Iota.new('door0/', nil) }.should raise_error(Edoors::Exception)
|
22
22
|
end
|
23
23
|
#
|
24
|
+
it 'start! should do nothing' do
|
25
|
+
S.new('top', nil).start!.should be_nil
|
26
|
+
end
|
27
|
+
#
|
28
|
+
it 'stop! should do nothing' do
|
29
|
+
S.new('top', nil).stop!.should be_nil
|
30
|
+
end
|
31
|
+
#
|
32
|
+
it 'hibernate! should return empty hash' do
|
33
|
+
S.new('top', nil).hibernate!.should be {}
|
34
|
+
end
|
35
|
+
#
|
36
|
+
it 'resume! should do nothing' do
|
37
|
+
S.new('top', nil).resume!(nil).should be_nil
|
38
|
+
end
|
39
|
+
#
|
40
|
+
it 'receive_p should raise NoMethodError' do
|
41
|
+
lambda { Edoors::Iota.new('top', nil).receive_p nil }.should raise_error(NoMethodError)
|
42
|
+
end
|
43
|
+
#
|
24
44
|
end
|
25
45
|
#
|
26
46
|
# EOF
|
data/spec/link_spec.rb
CHANGED
@@ -10,26 +10,23 @@ describe Edoors::Link do
|
|
10
10
|
@spin = Edoors::Spin.new 'dom0'
|
11
11
|
p = @spin.require_p Edoors::Particle
|
12
12
|
p.set_data Edoors::LNK_SRC, 'input1'
|
13
|
-
p.set_data Edoors::LNK_DSTS, 'concat1?follow,output1'
|
14
|
-
p.set_data Edoors::
|
15
|
-
p.set_data Edoors::
|
16
|
-
|
17
|
-
lnk = Edoors::Link.from_particle_data p
|
13
|
+
p.set_data Edoors::LNK_DSTS, ['concat1?follow','output1']
|
14
|
+
p.set_data Edoors::LNK_KEYS, ['f0','f2']
|
15
|
+
p.set_data Edoors::LNK_VALUE, {'f0'=>'v0','f1'=>'v1','f2'=>'v2'}
|
16
|
+
lnk = Edoors::Link.from_particle p
|
18
17
|
lnk.src.should eql 'input1'
|
19
|
-
lnk.dsts.should eql 'concat1?follow,output1'
|
20
|
-
lnk.
|
21
|
-
lnk.
|
22
|
-
lnk.cond_value.should eql 'v0v1v2'
|
18
|
+
lnk.dsts.should eql ['concat1?follow','output1']
|
19
|
+
lnk.keys.should eql ['f0','f2']
|
20
|
+
lnk.value.should == {'f0'=>'v0','f1'=>'v1','f2'=>'v2'}
|
23
21
|
end
|
24
22
|
#
|
25
23
|
it "link->json->link" do
|
26
|
-
link = Edoors::Link.new
|
24
|
+
link = Edoors::Link.new 'input1', ['concat1?follow','output1'], ['f0','f2'], {'f0'=>'v0','f1'=>'v1','f2'=>'v2'}
|
27
25
|
lnk = Edoors::Link.json_create( JSON.load( JSON.generate(link) ) )
|
28
26
|
link.src.should eql lnk.src
|
29
27
|
link.dsts.should eql lnk.dsts
|
30
|
-
link.
|
31
|
-
link.
|
32
|
-
link.cond_value.should eql lnk.cond_value
|
28
|
+
link.keys.should eql lnk.keys
|
29
|
+
link.value.should eql lnk.value
|
33
30
|
JSON.generate(link).should eql JSON.generate(lnk)
|
34
31
|
end
|
35
32
|
#
|
data/spec/particle_spec.rb
CHANGED
@@ -47,11 +47,32 @@ describe Edoors::Particle do
|
|
47
47
|
p.merged(0).should be q
|
48
48
|
p.merged(1).should be o
|
49
49
|
p.merged(2).should be_nil
|
50
|
+
c = 0
|
51
|
+
p.each_merged do |o|
|
52
|
+
o.should be p.merged(c)
|
53
|
+
c+=1
|
54
|
+
end
|
55
|
+
c.should be 2
|
56
|
+
p.merged_length.should be 2
|
50
57
|
p.merged_shift.should be q
|
51
58
|
p.merged(0).should be o
|
52
59
|
p.merged(1).should be_nil
|
60
|
+
c = 0
|
61
|
+
p.each_merged do |o|
|
62
|
+
o.should be p.merged(c)
|
63
|
+
c+=1
|
64
|
+
end
|
65
|
+
c.should be 1
|
66
|
+
p.merged_length.should be 1
|
53
67
|
p.merged_shift.should be o
|
54
68
|
p.merged(0).should be_nil
|
69
|
+
c = 0
|
70
|
+
p.each_merged do |o|
|
71
|
+
o.should be p.merged(c)
|
72
|
+
c+=1
|
73
|
+
end
|
74
|
+
c.should be 0
|
75
|
+
p.merged_length.should be 0
|
55
76
|
p.merge! q
|
56
77
|
p.merge! o
|
57
78
|
p.merged(0).should be q
|
@@ -74,7 +95,7 @@ describe Edoors::Particle do
|
|
74
95
|
d1 = Edoors::Door.new 'door1', nil
|
75
96
|
p.dst.should be_nil
|
76
97
|
p.next_dst.should be_nil
|
77
|
-
p.add_dsts 'some?where,room0/room1/door?action,room/door,door'
|
98
|
+
p.add_dsts 'some?where', 'room0/room1/door?action', 'room/door', 'door'
|
78
99
|
p.next_dst.should eql 'some?where'
|
79
100
|
p.dst_routed! d0
|
80
101
|
p.dst.should be d0
|
@@ -110,6 +131,12 @@ describe Edoors::Particle do
|
|
110
131
|
p.set_dst! 'action', d0
|
111
132
|
p.action.should eql 'action'
|
112
133
|
p.dst.should be d0
|
134
|
+
#
|
135
|
+
p.set_dst! 'action', '/world/room/door'
|
136
|
+
p.action.should eql 'action'
|
137
|
+
p.dst.should be nil
|
138
|
+
p.room.should eql '/world/room'
|
139
|
+
p.door.should eql 'door'
|
113
140
|
end
|
114
141
|
#
|
115
142
|
it "routing: add_dst and split_dst!" do
|
@@ -149,7 +176,7 @@ describe Edoors::Particle do
|
|
149
176
|
p.action.should eql 'action'
|
150
177
|
p.clear_dsts!
|
151
178
|
#
|
152
|
-
p.add_dsts 'door?action
|
179
|
+
p.add_dsts 'door?action', '?action'
|
153
180
|
p.split_dst!
|
154
181
|
p.room.should be_nil
|
155
182
|
p.door.should eql 'door'
|
@@ -169,7 +196,7 @@ describe Edoors::Particle do
|
|
169
196
|
p = Edoors::Particle.new
|
170
197
|
d = Edoors::Door.new 'door', nil
|
171
198
|
p.init! d
|
172
|
-
p.add_dsts 'door?action
|
199
|
+
p.add_dsts 'door?action', '?action'
|
173
200
|
p.next_dst.should eql 'door?action'
|
174
201
|
p.error! 'err_msg'
|
175
202
|
p[Edoors::FIELD_ERROR_MSG].should eql 'err_msg'
|
@@ -177,17 +204,30 @@ describe Edoors::Particle do
|
|
177
204
|
p.dst.should be d
|
178
205
|
end
|
179
206
|
#
|
180
|
-
it "link
|
207
|
+
it "link keys and link values" do
|
208
|
+
p = Edoors::Particle.new
|
209
|
+
p['k0'] = 'v0'
|
210
|
+
p.set_data 'k1', 'v1'
|
211
|
+
p['k2'] = 'v2'
|
212
|
+
p['k3'] = 'v3'
|
213
|
+
p.set_link_keys 'k0', 'k2', 'k1'
|
214
|
+
p.link_value.should == {'k0'=>'v0','k1'=>'v1','k2'=>'v2'}
|
215
|
+
p.del_data 'k0'
|
216
|
+
p.link_value.should == {'k1'=>'v1','k2'=>'v2'}
|
217
|
+
p.set_link_keys 'k1', 'k0'
|
218
|
+
p.link_value.should == {'k1'=>'v1'}
|
219
|
+
p['k1']='vX'
|
220
|
+
p.link_value.should == {'k1'=>'vX'}
|
221
|
+
end
|
222
|
+
#
|
223
|
+
it 'link_with?' do
|
181
224
|
p = Edoors::Particle.new
|
182
225
|
p['k0'] = 'v0'
|
183
226
|
p['k1'] = 'v1'
|
184
227
|
p['k2'] = 'v2'
|
185
|
-
p.
|
186
|
-
p.
|
187
|
-
p.
|
188
|
-
p.link_value.should eql 'v1v0'
|
189
|
-
p['k0']='vx'
|
190
|
-
p.link_value.should eql 'v1vx'
|
228
|
+
p.link_with?(Edoors::Link.new('', '', '')).should be_true
|
229
|
+
p.link_with?(Edoors::Link.new('', '', '', {'k0'=>'v0','k1'=>'v1'})).should be_true
|
230
|
+
p.link_with?(Edoors::Link.new('', '', '', {'k0'=>'v2','k1'=>'v1'})).should be_false
|
191
231
|
end
|
192
232
|
#
|
193
233
|
it "apply_link!" do
|
@@ -195,18 +235,18 @@ describe Edoors::Particle do
|
|
195
235
|
p['k0'] = 'v0'
|
196
236
|
p['k1'] = 'v1'
|
197
237
|
p['k2'] = 'v2'
|
198
|
-
p.
|
199
|
-
p.add_dsts 'door?action
|
238
|
+
p.set_link_keys 'k0', 'k2'
|
239
|
+
p.add_dsts 'door?action', '?action'
|
200
240
|
p.src.should be_nil
|
201
|
-
p.link_value.should
|
241
|
+
p.link_value.should == {'k0'=>'v0','k2'=>'v2'}
|
202
242
|
p.next_dst.should eql 'door?action'
|
203
|
-
lnk = Edoors::Link.new('door0', 'door1?get,door2', 'k1', 'f0,f1'
|
243
|
+
lnk = Edoors::Link.new('door0', ['door1?get','door2'], 'k1', {'f0'=>'v0','f1'=>'v1'})
|
204
244
|
f = Fake.new 'fake', nil
|
205
245
|
lnk.door = f
|
206
246
|
p.apply_link! lnk
|
207
247
|
p.src.should be f
|
208
248
|
p.next_dst.should eql 'door1?get'
|
209
|
-
p.link_value.should
|
249
|
+
p.link_value.should == {'k1'=>'v1'}
|
210
250
|
end
|
211
251
|
#
|
212
252
|
it "particle->json->particle" do
|
@@ -220,8 +260,8 @@ describe Edoors::Particle do
|
|
220
260
|
p0['k1'] = 'v1'
|
221
261
|
p0['k2'] = 'v2'
|
222
262
|
p0.init! s3
|
223
|
-
p0.
|
224
|
-
p0.add_dsts 'room0/room1/room2/doorX?myaction,door?action
|
263
|
+
p0.set_link_keys 'k0', 'k2'
|
264
|
+
p0.add_dsts 'room0/room1/room2/doorX?myaction', 'door?action', '?action'
|
225
265
|
p0.split_dst!
|
226
266
|
p1 = Edoors::Particle.new
|
227
267
|
p1['k3'] = 'v6'
|
@@ -229,8 +269,8 @@ describe Edoors::Particle do
|
|
229
269
|
p1['k5'] = 'v8'
|
230
270
|
p1.init! s3
|
231
271
|
p1.dst_routed! s4
|
232
|
-
p1.
|
233
|
-
p1.add_dsts 'room0/room1/door?action,output?action'
|
272
|
+
p1.set_link_keys 'k5', 'k4', 'k3'
|
273
|
+
p1.add_dsts 'room0/room1/door?action', 'output?action'
|
234
274
|
p0.merge! p1
|
235
275
|
o = JSON.load( JSON.generate(p0) )
|
236
276
|
o['spin'] = s0
|
@@ -242,7 +282,7 @@ describe Edoors::Particle do
|
|
242
282
|
px.door.should eql 'doorX'
|
243
283
|
px.action.should eql 'myaction'
|
244
284
|
px.next_dst.should eql 'room0/room1/room2/doorX?myaction'
|
245
|
-
px.link_value.should
|
285
|
+
px.link_value.should == {'k0'=>'v0','k2'=>'v2'}
|
246
286
|
px['k0'].should eql 'v0'
|
247
287
|
px['k1'].should eql 'v1'
|
248
288
|
px['k2'].should eql 'v2'
|
@@ -254,7 +294,7 @@ describe Edoors::Particle do
|
|
254
294
|
py.door.should be_nil
|
255
295
|
py.action.should be_nil
|
256
296
|
py.next_dst.should eql 'room0/room1/door?action'
|
257
|
-
py.link_value.should
|
297
|
+
py.link_value.should == {'k3'=>'v6','k4'=>'v7','k5'=>'v8'}
|
258
298
|
py['k3'].should eql 'v6'
|
259
299
|
py['k4'].should eql 'v7'
|
260
300
|
py['k5'].should eql 'v8'
|
data/spec/room_spec.rb
CHANGED
@@ -203,7 +203,7 @@ describe Edoors::Room do
|
|
203
203
|
room0 = Edoors::Room.new 'room0', @spin
|
204
204
|
door0 = Edoors::Door.new 'door0', room0
|
205
205
|
door1 = Edoors::Door.new 'door1', room0
|
206
|
-
room0.add_link Edoors::Link.new('door0', 'door1', '
|
206
|
+
room0.add_link Edoors::Link.new('door0', 'door1', 'keys', {'f0'=>'v0','f1'=>'v1'})
|
207
207
|
p = @spin.require_p Edoors::Particle
|
208
208
|
p['f0']='v0'
|
209
209
|
p['f1']='v1'
|
@@ -220,19 +220,22 @@ describe Edoors::Room do
|
|
220
220
|
attr_reader :count
|
221
221
|
def receive_p p
|
222
222
|
@count||=0
|
223
|
+
['0','1','2'][@count].should == p.next_dst
|
223
224
|
@count += 1
|
224
225
|
end
|
225
226
|
end
|
226
227
|
door1 = Out.new 'door1', room0
|
227
|
-
room0.add_link Edoors::Link.new('door0', 'door1')
|
228
|
-
room0.add_link Edoors::Link.new('door0', 'door1',
|
229
|
-
room0.add_link Edoors::Link.new('door0', 'door1', '
|
228
|
+
room0.add_link Edoors::Link.new('door0', ['door1','0'])
|
229
|
+
room0.add_link Edoors::Link.new('door0', ['door1','1'], 'keys', {'f0'=>'v0'})
|
230
|
+
room0.add_link Edoors::Link.new('door0', ['door1','2'], 'keys', {'f0'=>'v0','f1'=>'v1'})
|
231
|
+
room0.add_link Edoors::Link.new('door0', ['door1','3'], 'keys', {'f0'=>'v0','f1'=>'v2'})
|
232
|
+
room0.add_link Edoors::Link.new('door0', ['door1','4'], 'keys', {'f0'=>'v0','f2'=>'v1'})
|
230
233
|
p = @spin.require_p Edoors::Particle
|
231
234
|
p['f0']='v0'
|
232
235
|
p['f1']='v1'
|
233
236
|
door0.send_p p
|
234
237
|
@spin.spin!
|
235
|
-
door1.count.should eql
|
238
|
+
door1.count.should eql 3
|
236
239
|
end
|
237
240
|
#
|
238
241
|
it "system route error: system no destination" do
|
@@ -278,9 +281,8 @@ describe Edoors::Room do
|
|
278
281
|
p0 = @spin.require_p Edoors::Particle
|
279
282
|
p0.set_data Edoors::LNK_SRC, 'door0'
|
280
283
|
p0.set_data Edoors::LNK_DSTS, 'door1'
|
281
|
-
p0.set_data Edoors::
|
282
|
-
p0.set_data Edoors::
|
283
|
-
p0.set_data Edoors::LNK_CONDV, 'v0v1'
|
284
|
+
p0.set_data Edoors::LNK_KEYS, 'keys'
|
285
|
+
p0.set_data Edoors::LNK_VALUE, {'f0'=>'v0','f1'=>'v1'}
|
284
286
|
p0.add_dst Edoors::SYS_ACT_ADD_LINK, room0.path
|
285
287
|
room0.send_sys_p p0
|
286
288
|
@spin.spin!
|
@@ -293,6 +295,22 @@ describe Edoors::Room do
|
|
293
295
|
p.dst.should be door1
|
294
296
|
end
|
295
297
|
#
|
298
|
+
it "SYS_ACT_ADD_ROOM" do
|
299
|
+
room0 = Edoors::Room.new 'room0', @spin
|
300
|
+
p0 = @spin.require_p Edoors::Particle
|
301
|
+
p0.set_data Edoors::IOTA_NAME, 'roomX'
|
302
|
+
p0.add_dst Edoors::SYS_ACT_ADD_ROOM, room0.path
|
303
|
+
room0.send_sys_p p0
|
304
|
+
p1 = @spin.require_p Edoors::Particle
|
305
|
+
p1.set_data Edoors::IOTA_NAME, 'roomY'
|
306
|
+
p1.set_dst! Edoors::SYS_ACT_ADD_ROOM, room0
|
307
|
+
@spin.send_sys_p p1
|
308
|
+
@spin.spin!
|
309
|
+
@spin.search_world('dom0/room0/roomX').should be_a Edoors::Room
|
310
|
+
@spin.search_world('dom0/room0/roomY').should be_a Edoors::Room
|
311
|
+
@spin.search_world('dom0/room0/roomZ').should be nil
|
312
|
+
end
|
313
|
+
#
|
296
314
|
it "room->json->room" do
|
297
315
|
r0 = Edoors::Room.new 'r0', @spin
|
298
316
|
r1 = Edoors::Room.new 'r1', r0
|
@@ -302,10 +320,10 @@ describe Edoors::Room do
|
|
302
320
|
d0 = Edoors::Door.new 'd0', r1
|
303
321
|
d1 = Edoors::Door.new 'd1', r1
|
304
322
|
d2 = Edoors::Door.new 'd2', r2
|
305
|
-
r1.add_link Edoors::Link.new('d0', 'd1', '
|
323
|
+
r1.add_link Edoors::Link.new('d0', 'd1', 'keys', {'f0'=>'v0','f1'=>'v1'})
|
306
324
|
r1.add_link Edoors::Link.new('d0', 'd2')
|
307
325
|
r1.add_link Edoors::Link.new('d1', 'd0')
|
308
|
-
r2.add_link Edoors::Link.new('d2', 'd1', 'fies', 'f5,f1'
|
326
|
+
r2.add_link Edoors::Link.new('d2', 'd1', 'fies', {'f5'=>'v9','f1'=>'v1'})
|
309
327
|
rx = Edoors::Room.json_create( JSON.load( JSON.generate(r0) ) )
|
310
328
|
JSON.generate(r0).should eql JSON.generate(rx)
|
311
329
|
end#
|
data/spec/spin_spec.rb
CHANGED
@@ -70,7 +70,7 @@ describe Edoors::Spin do
|
|
70
70
|
spin.spin!
|
71
71
|
f.p.should be p0
|
72
72
|
f.sp.should be p1
|
73
|
-
spin.
|
73
|
+
spin.stop_spinning!
|
74
74
|
end
|
75
75
|
#
|
76
76
|
it "process_sys" do
|
@@ -86,10 +86,20 @@ describe Edoors::Spin do
|
|
86
86
|
it "option debug" do
|
87
87
|
spin = Edoors::Spin.new 'dom0'
|
88
88
|
spin.debug_routing.should be false
|
89
|
-
spin.
|
90
|
-
spin = Edoors::Spin.new 'dom0', :debug_routing=>true, :
|
89
|
+
spin.debug_garbage.should be false
|
90
|
+
spin = Edoors::Spin.new 'dom0', :debug_routing=>true, :debug_garbage=>true
|
91
91
|
spin.debug_routing.should be true
|
92
|
-
spin.
|
92
|
+
spin.debug_garbage.should be true
|
93
|
+
end
|
94
|
+
#
|
95
|
+
it "search world" do
|
96
|
+
spin = Edoors::Spin.new 'dom0', :debug_routing=>true
|
97
|
+
r0 = Edoors::Room.new 'r0', spin
|
98
|
+
r1 = Edoors::Room.new 'r1', r0
|
99
|
+
r2 = Edoors::Room.new 'r2', r1
|
100
|
+
spin.search_world(r0.path).should be r0
|
101
|
+
spin.search_world(r1.path).should be r1
|
102
|
+
spin.search_world(r2.path).should be r2
|
93
103
|
end
|
94
104
|
#
|
95
105
|
it "spin->json->spin" do
|
@@ -119,7 +129,7 @@ describe Edoors::Spin do
|
|
119
129
|
p0.add_dst Edoors::SYS_ACT_HIBERNATE
|
120
130
|
Edoors::Room.new 'input', spin
|
121
131
|
Edoors::Room.new 'output', spin
|
122
|
-
spin.add_link Edoors::Link.new('input', 'output', nil, nil
|
132
|
+
spin.add_link Edoors::Link.new('input', 'output', nil, nil)
|
123
133
|
spin.send_sys_p p0
|
124
134
|
spin.spin!
|
125
135
|
dom0 = Edoors::Spin.resume! spin.hibernate_path
|
data/test/test_iotas.rb
CHANGED
@@ -136,7 +136,7 @@ class OutputDoor < Edoors::Door
|
|
136
136
|
#
|
137
137
|
end
|
138
138
|
#
|
139
|
-
spin = Edoors::Spin.new 'dom0', :debug_routing=>false, :
|
139
|
+
spin = Edoors::Spin.new 'dom0', :debug_routing=>false, :debug_garbage=>true
|
140
140
|
#
|
141
141
|
room0 = Edoors::Room.new 'room0', spin
|
142
142
|
room1 = Edoors::Room.new 'room1', spin
|
@@ -148,14 +148,13 @@ input1 = InputDoor.new 'input1', room1
|
|
148
148
|
output1 = OutputDoor.new 'output1', room1, true
|
149
149
|
concat1 = ConcatBoard.new 'concat1', room1
|
150
150
|
#
|
151
|
-
room0.add_link Edoors::Link.new('input0', 'output0', nil, nil
|
151
|
+
room0.add_link Edoors::Link.new('input0', 'output0', nil, nil)
|
152
152
|
#
|
153
153
|
p0 = spin.require_p Edoors::Particle
|
154
154
|
p0.set_data Edoors::LNK_SRC, 'input1'
|
155
|
-
p0.set_data Edoors::LNK_DSTS, 'concat1?follow,output1'
|
156
|
-
p0.set_data Edoors::
|
157
|
-
p0.set_data Edoors::
|
158
|
-
p0.set_data Edoors::LNK_CONDV, 'v0v1v2'
|
155
|
+
p0.set_data Edoors::LNK_DSTS, ['concat1?follow','output1']
|
156
|
+
p0.set_data Edoors::LNK_KEYS, ['f0','f2']
|
157
|
+
p0.set_data Edoors::LNK_VALUE, {'f0'=>'v0','f1'=>'v1','f2'=>'v2'}
|
159
158
|
p0.add_dst Edoors::SYS_ACT_ADD_LINK, room1.path
|
160
159
|
room1.send_sys_p p0 # send_sys_p -> room0 -> spin -> room1 -> input1
|
161
160
|
#
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: edoors-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &11695920 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
24
|
+
version_requirements: *11695920
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: rspec
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &9674500 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ~>
|
@@ -37,15 +32,10 @@ dependencies:
|
|
37
32
|
version: '2.6'
|
38
33
|
type: :development
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '2.6'
|
35
|
+
version_requirements: *9674500
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: rake
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &9674080 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
41
|
- - ! '>='
|
@@ -53,12 +43,7 @@ dependencies:
|
|
53
43
|
version: '0'
|
54
44
|
type: :development
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
46
|
+
version_requirements: *9674080
|
62
47
|
description: ! "Evenja propose a data centric paradigm. A traditional programm composed
|
63
48
|
of many functions\n is decomposed into small autonomous modifications applied
|
64
49
|
on the data implemented in different instances of Door base class.\n Routing
|
@@ -80,8 +65,13 @@ files:
|
|
80
65
|
- Rakefile
|
81
66
|
- bin/edoors.rb
|
82
67
|
- edoors-ruby.gemspec
|
68
|
+
- examples/board.json
|
69
|
+
- examples/board.rb
|
70
|
+
- examples/data.json
|
83
71
|
- examples/hello_world.json
|
84
72
|
- examples/hello_world.rb
|
73
|
+
- examples/links.json
|
74
|
+
- examples/links.rb
|
85
75
|
- lib/edoors.rb
|
86
76
|
- lib/edoors/board.rb
|
87
77
|
- lib/edoors/door.rb
|
@@ -93,12 +83,12 @@ files:
|
|
93
83
|
- lib/version.rb
|
94
84
|
- spec/board_spec.rb
|
95
85
|
- spec/door_spec.rb
|
86
|
+
- spec/iota_spec.rb
|
96
87
|
- spec/link_spec.rb
|
97
88
|
- spec/particle_spec.rb
|
98
89
|
- spec/room_spec.rb
|
99
90
|
- spec/spec_helper.rb
|
100
91
|
- spec/spin_spec.rb
|
101
|
-
- spec/spot_spec.rb
|
102
92
|
- test/test_iotas.rb
|
103
93
|
homepage: http://github.com/jeremyz/edoors-ruby
|
104
94
|
licenses: []
|
@@ -120,17 +110,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
110
|
version: '0'
|
121
111
|
requirements: []
|
122
112
|
rubyforge_project:
|
123
|
-
rubygems_version: 1.8.
|
113
|
+
rubygems_version: 1.8.11
|
124
114
|
signing_key:
|
125
115
|
specification_version: 3
|
126
116
|
summary: ruby rewrite of C++ application framework evenja (http://www.revena.com/evenja)
|
127
117
|
test_files:
|
128
118
|
- spec/board_spec.rb
|
129
119
|
- spec/door_spec.rb
|
120
|
+
- spec/iota_spec.rb
|
130
121
|
- spec/link_spec.rb
|
131
122
|
- spec/particle_spec.rb
|
132
123
|
- spec/room_spec.rb
|
133
124
|
- spec/spec_helper.rb
|
134
125
|
- spec/spin_spec.rb
|
135
|
-
- spec/spot_spec.rb
|
136
126
|
- test/test_iotas.rb
|
127
|
+
has_rdoc:
|