edoors-ruby 0.0.6 → 0.0.7
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.
- 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:
|