flok 0.0.103 → 0.0.105

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/app/drivers/chrome/config.yml +2 -0
  3. data/app/drivers/chrome/src/about.js +14 -0
  4. data/app/drivers/chrome/src/guid.js +9 -0
  5. data/app/drivers/chrome/src/net.js +25 -3
  6. data/app/kern/mod/about.js +19 -0
  7. data/app/kern/mod/hook.js +2 -2
  8. data/app/kern/mod/udid.js +9 -0
  9. data/app/kern/services/rest.rb +67 -8
  10. data/bin/flok +14 -0
  11. data/docs/mod/about.md +19 -0
  12. data/docs/mod/net.md +9 -4
  13. data/docs/mod/ui.md +1 -1
  14. data/docs/services/rest.md +24 -2
  15. data/docs/services/vm.md +4 -0
  16. data/docs/user_handbook/hooks.md +61 -5
  17. data/lib/flok/hooks_compiler.rb +6 -0
  18. data/lib/flok/user_compiler.rb +33 -5
  19. data/lib/flok/user_hook_generators/goto.rb +25 -3
  20. data/lib/flok/user_hook_generators/pop.rb +99 -0
  21. data/lib/flok/user_hook_generators/push.rb +119 -0
  22. data/lib/flok/version.rb +1 -1
  23. data/spec/iface/driver/about_spec.rb +14 -0
  24. data/spec/iface/driver/net_spec.rb +91 -2
  25. data/spec/iface/driver/ping_spec.rb +1 -0
  26. data/spec/kern/about_spec.rb +30 -0
  27. data/spec/kern/assets/hook_entry_points/controller0a_push.rb +31 -0
  28. data/spec/kern/assets/hook_entry_points/controller0b.rb +17 -0
  29. data/spec/kern/assets/hook_entry_points/controller0bc.rb +27 -0
  30. data/spec/kern/assets/hook_entry_points/controller_0b_pop.rb +18 -0
  31. data/spec/kern/assets/hook_entry_points/controller_0b_pop2.rb +66 -0
  32. data/spec/kern/assets/hook_entry_points/controller_0b_push.rb +15 -0
  33. data/spec/kern/assets/hook_entry_points/controller_0b_push2.rb +55 -0
  34. data/spec/kern/assets/rest_service/controller1b.rb +47 -0
  35. data/spec/kern/hook_entry_points_and_manifest_spec.rb +174 -0
  36. data/spec/kern/{hook_user_generators_spec.rb → hook_goto_user_generators_spec.rb} +145 -7
  37. data/spec/kern/hook_pop_user_generators_spec.rb +292 -0
  38. data/spec/kern/hook_push_user_generators_spec.rb +305 -0
  39. data/spec/kern/rest_service_spec.rb +97 -1
  40. data/spec/lib/helpers.rb +5 -3
  41. metadata +35 -5
  42. data/lib/flok/user_hook_generators/helpers.rb +0 -46
@@ -0,0 +1,305 @@
1
+ #Relating to the conversion of the user's ./config/hooks.rb file into the equivalent HooksManifestEntrie(s) (This may cross-over into
2
+ #the HooksCompiler itself because we need to test side-effects)
3
+
4
+ Dir.chdir File.join File.dirname(__FILE__), '../../'
5
+ require './spec/env/kern.rb'
6
+ require './spec/lib/helpers.rb'
7
+ require './spec/lib/io_extensions.rb'
8
+ require './spec/lib/rspec_extensions.rb'
9
+ require './lib/flok/hooks_compiler.rb'
10
+ require 'zlib'
11
+
12
+ RSpec.describe "kern:hook_push_user_generators_spec" do
13
+ include Zlib
14
+ include_context "kern"
15
+
16
+ it "Can use the :push hook generator for all controllers (no matchers)" do
17
+ hooks_src = %{
18
+ hook :push => :push do
19
+ #Select all
20
+ end
21
+ }
22
+
23
+ #Just expect this not to blow up
24
+ info = flok_new_user_with_src File.read('./spec/kern/assets/hook_entry_points/controller_0b_push.rb'), nil, nil, hooks_src
25
+ ctx = info[:ctx]
26
+
27
+ #Run the embed function
28
+ dump = ctx.evald %{
29
+ dump.base = _embed("my_controller", 0, {}, null); // Embed the controller
30
+ int_dispatch([]); // Dispatch any events the are pending
31
+ dump.on_entry_base_pointer = on_entry_base_pointer;
32
+ }
33
+
34
+ @driver.int "int_event", [ dump["on_entry_base_pointer"], "next_clicked", {} ]
35
+
36
+ @driver.ignore_up_to("if_hook_event", 0)
37
+ @driver.get "if_hook_event", 0
38
+ end
39
+
40
+ it "Can use the :push hook generator for one specific controller by name" do
41
+ hooks_src = %{
42
+ hook :push => :push do
43
+ controller "my_controller"
44
+ end
45
+ }
46
+
47
+ #Just expect this not to blow up
48
+ info = flok_new_user_with_src File.read('./spec/kern/assets/hook_entry_points/controller_0b_push2.rb'), nil, nil, hooks_src
49
+ ctx = info[:ctx]
50
+
51
+ #Run the embed function
52
+ dump = ctx.evald %{
53
+ dump.base = _embed("my_controller", 0, {}, null); // Embed the controller
54
+ int_dispatch([]); // Dispatch any events the are pending
55
+ dump.on_entry_base_pointer = on_entry_base_pointer;
56
+ dump.on_entry_base_pointer2 = on_entry_base_pointer2;
57
+ }
58
+
59
+ @driver.int "int_event", [ dump["on_entry_base_pointer"], "next_clicked", {} ]
60
+ @driver.int "int_event", [ dump["on_entry_base_pointer2"], "next_clicked", {} ]
61
+
62
+ @driver.ignore_up_to("if_hook_event", 0)
63
+ @driver.get "if_hook_event", 0
64
+ expect {@driver.ignore_up_to("if_hook_event", 0)}.to raise_error /Waited/
65
+ end
66
+
67
+ it "Can use the :push hook generator for one action that responds to something (going to thing)" do
68
+ hooks_src = %{
69
+ hook :push => :push do
70
+ to_action_responds_to? "test"
71
+ end
72
+ }
73
+
74
+ #Just expect this not to blow up
75
+ info = flok_new_user_with_src File.read('./spec/kern/assets/hook_entry_points/controller_0b_push2.rb'), nil, nil, hooks_src
76
+ ctx = info[:ctx]
77
+
78
+ #Run the embed function
79
+ dump = ctx.evald %{
80
+ dump.base = _embed("my_controller", 0, {}, null); // Embed the controller
81
+ int_dispatch([]); // Dispatch any events the are pending
82
+ dump.on_entry_base_pointer = on_entry_base_pointer;
83
+ dump.on_entry_base_pointer2 = on_entry_base_pointer2;
84
+ }
85
+
86
+ @driver.int "int_event", [ dump["on_entry_base_pointer"], "next_clicked", {} ]
87
+ @driver.int "int_event", [ dump["on_entry_base_pointer2"], "next_clicked", {} ]
88
+
89
+ @driver.ignore_up_to("if_hook_event", 0)
90
+ res = @driver.get "if_hook_event", 0
91
+ expect {@driver.ignore_up_to("if_hook_event", 0)}.to raise_error /Waited/
92
+ end
93
+
94
+
95
+ it "Can use the :push hook generator for one action that responds to something (coming from thing)" do
96
+ hooks_src = %{
97
+ hook :push => :push do
98
+ from_action_responds_to? "olah"
99
+ end
100
+ }
101
+
102
+ #Just expect this not to blow up
103
+ info = flok_new_user_with_src File.read('./spec/kern/assets/hook_entry_points/controller_0b_push2.rb'), nil, nil, hooks_src
104
+ ctx = info[:ctx]
105
+
106
+ #Run the embed function
107
+ dump = ctx.evald %{
108
+ dump.base = _embed("my_controller", 0, {}, null); // Embed the controller
109
+ int_dispatch([]); // Dispatch any events the are pending
110
+ dump.on_entry_base_pointer = on_entry_base_pointer;
111
+ dump.on_entry_base_pointer2 = on_entry_base_pointer2;
112
+ }
113
+
114
+ @driver.int "int_event", [ dump["on_entry_base_pointer"], "next_clicked", {} ]
115
+ @driver.int "int_event", [ dump["on_entry_base_pointer2"], "next_clicked", {} ]
116
+
117
+ @driver.ignore_up_to("if_hook_event", 0)
118
+ res = @driver.get "if_hook_event", 0
119
+ expect {@driver.ignore_up_to("if_hook_event", 0)}.to raise_error /Waited/
120
+ end
121
+
122
+ it "Can use the :push hook generator for a controller with the triggered_by constraint for various actions" do
123
+ #Hook source code
124
+ hooks_src = %{
125
+ hook :push => :push do
126
+ triggered_by "next_clicked"
127
+ end
128
+ }
129
+
130
+ #Get a new js context with the controllers source and the hooks source
131
+ info = flok_new_user_with_src File.read('./spec/kern/assets/hook_entry_points/controller_0b_pop2.rb'), nil, nil, hooks_src
132
+ File.write File.expand_path("~/Downloads/src.txt"), info[:src]
133
+ ctx = info[:ctx]
134
+ #Run the embed function
135
+ dump = ctx.evald %{
136
+ dump.base = _embed("my_controller", 0, {}, null); // Embed the controller
137
+ int_dispatch([]); // Dispatch any events the are pending
138
+ dump.on_entry_base_pointer = on_entry_base_pointer; // Grab the base address of 'my_other_controller'
139
+ }
140
+
141
+ @driver.int "int_event", [ dump["on_entry_base_pointer"], "next_clicked", {} ]
142
+ @driver.ignore_up_to("if_hook_event", 0)
143
+ end
144
+
145
+
146
+ it "can hook into a particualr action we are pushing to" do
147
+ hooks_src = %{
148
+ hook :push => :push do
149
+ to_action "other2"
150
+ end
151
+ }
152
+
153
+ #Just expect this not to blow up
154
+ info = flok_new_user_with_src File.read('./spec/kern/assets/hook_entry_points/controller_0b_push2.rb'), nil, nil, hooks_src
155
+ ctx = info[:ctx]
156
+
157
+ #Run the embed function
158
+ dump = ctx.evald %{
159
+ dump.base = _embed("my_controller", 0, {}, null); // Embed the controller
160
+ int_dispatch([]); // Dispatch any events the are pending
161
+ dump.on_entry_base_pointer = on_entry_base_pointer;
162
+ dump.on_entry_base_pointer2 = on_entry_base_pointer2;
163
+ }
164
+
165
+ @driver.int "int_event", [ dump["on_entry_base_pointer"], "next_clicked", {} ]
166
+ @driver.int "int_event", [ dump["on_entry_base_pointer2"], "next_clicked", {} ]
167
+
168
+ @driver.ignore_up_to("if_hook_event", 0)
169
+ res = @driver.get "if_hook_event", 0
170
+ expect {@driver.ignore_up_to("if_hook_event", 0)}.to raise_error /Waited/
171
+ end
172
+
173
+ it "can hook into multiple particualr action we are pushing to" do
174
+ hooks_src = %{
175
+ hook :push => :push do
176
+ to_action "other", "other2"
177
+ end
178
+ }
179
+
180
+ #Just expect this not to blow up
181
+ info = flok_new_user_with_src File.read('./spec/kern/assets/hook_entry_points/controller_0b_push2.rb'), nil, nil, hooks_src
182
+ ctx = info[:ctx]
183
+
184
+ #Run the embed function
185
+ dump = ctx.evald %{
186
+ dump.base = _embed("my_controller", 0, {}, null); // Embed the controller
187
+ int_dispatch([]); // Dispatch any events the are pending
188
+ dump.on_entry_base_pointer = on_entry_base_pointer;
189
+ dump.on_entry_base_pointer2 = on_entry_base_pointer2;
190
+ }
191
+
192
+ @driver.int "int_event", [ dump["on_entry_base_pointer"], "next_clicked", {} ]
193
+ @driver.int "int_event", [ dump["on_entry_base_pointer2"], "next_clicked", {} ]
194
+
195
+ @driver.ignore_up_to("if_hook_event", 0)
196
+ res = @driver.get "if_hook_event", 0
197
+
198
+ @driver.ignore_up_to("if_hook_event", 0)
199
+ res = @driver.get "if_hook_event", 0
200
+ end
201
+
202
+
203
+ it "can hook into multiple action we are pushing from" do
204
+ hooks_src = %{
205
+ hook :push => :push do
206
+ from_action "index", "other2"
207
+ end
208
+ }
209
+
210
+ #Just expect this not to blow up
211
+ info = flok_new_user_with_src File.read('./spec/kern/assets/hook_entry_points/controller_0b_push2.rb'), nil, nil, hooks_src
212
+ ctx = info[:ctx]
213
+
214
+ #Run the embed function
215
+ dump = ctx.evald %{
216
+ dump.base = _embed("my_controller", 0, {}, null); // Embed the controller
217
+ int_dispatch([]); // Dispatch any events the are pending
218
+ dump.on_entry_base_pointer = on_entry_base_pointer;
219
+ dump.on_entry_base_pointer2 = on_entry_base_pointer2;
220
+ }
221
+
222
+ @driver.int "int_event", [ dump["on_entry_base_pointer2"], "next_clicked", {} ]
223
+ @driver.int "int_event", [ dump["on_entry_base_pointer2"], "next_clicked", {} ]
224
+
225
+ @driver.ignore_up_to("if_hook_event", 0); @driver.get "if_hook_event", 0
226
+ @driver.ignore_up_to("if_hook_event", 0); @driver.get "if_hook_event", 0
227
+ end
228
+
229
+ it "can hook into a particular action we are pushing from" do
230
+ hooks_src = %{
231
+ hook :push => :push do
232
+ from_action "index"
233
+ end
234
+ }
235
+
236
+ #Just expect this not to blow up
237
+ info = flok_new_user_with_src File.read('./spec/kern/assets/hook_entry_points/controller_0b_push2.rb'), nil, nil, hooks_src
238
+ ctx = info[:ctx]
239
+
240
+ #Run the embed function
241
+ dump = ctx.evald %{
242
+ dump.base = _embed("my_controller", 0, {}, null); // Embed the controller
243
+ int_dispatch([]); // Dispatch any events the are pending
244
+ dump.on_entry_base_pointer = on_entry_base_pointer;
245
+ dump.on_entry_base_pointer2 = on_entry_base_pointer2;
246
+ }
247
+
248
+ @driver.int "int_event", [ dump["on_entry_base_pointer2"], "next_clicked", {} ]
249
+ @driver.int "int_event", [ dump["on_entry_base_pointer2"], "next_clicked", {} ]
250
+
251
+ @driver.ignore_up_to("if_hook_event", 0); @driver.get "if_hook_event", 0
252
+ expect {@driver.ignore_up_to("if_hook_event", 0)}.to raise_error /Waited/
253
+ end
254
+
255
+
256
+ it "Can use push to embed a pre and post selectors which will be returned in the hooking response" do
257
+ #Hook source code
258
+ hooks_src = %{
259
+ hook :push => :push do
260
+ controller "my_controller"
261
+ to_action "other"
262
+
263
+ before_views({
264
+ "." => {
265
+ "__leaf__" => "foo"
266
+ }
267
+ })
268
+
269
+ after_views({
270
+ "my_controller3" => {
271
+ "__leaf__" => "foo2"
272
+ }
273
+ })
274
+
275
+ end
276
+ }
277
+
278
+ #Just expect this not to blow up
279
+ info = flok_new_user_with_src File.read('./spec/kern/assets/hook_entry_points/controller_0b_push2.rb'), nil, nil, hooks_src
280
+ ctx = info[:ctx]
281
+
282
+ #Run the embed function
283
+ ctx.evald %{
284
+ dump.base = _embed("my_controller", 0, {}, null); // Embed the controller
285
+ int_dispatch([]); // Dispatch any events the are pending
286
+ }
287
+
288
+
289
+ on_entry_base_pointer = ctx.eval("on_entry_base_pointer")
290
+
291
+ @driver.int "int_event", [ on_entry_base_pointer, "next_clicked", {} ]
292
+ my_controller3_base = ctx.eval("my_controller3_base")
293
+ on_entry_base_pointer2 = ctx.eval("on_entry_base_pointer2")
294
+
295
+ @driver.ignore_up_to("if_hook_event", 0)
296
+ hook_res = @driver.get "if_hook_event", 0
297
+
298
+ expect(hook_res[1]).to eq({
299
+ "views" => {
300
+ "foo" => on_entry_base_pointer2,
301
+ "foo2" => my_controller3_base
302
+ }
303
+ })
304
+ end
305
+ end
@@ -50,7 +50,7 @@ RSpec.describe "kern:rest_service" do
50
50
  tp_base = msg.last
51
51
 
52
52
  @driver.int "int_net_cb", [
53
- tp_base, true, {"foo" => "bar"}
53
+ tp_base, 200, {"foo" => "bar"}
54
54
  ]
55
55
 
56
56
  dump = ctx.evald %{
@@ -59,9 +59,105 @@ RSpec.describe "kern:rest_service" do
59
59
 
60
60
  expect(dump["rest_res_params"]).to eq({
61
61
  "path" => "test",
62
+ "code" => 200,
62
63
  "res" => {
63
64
  "foo" => "bar"
64
65
  }
65
66
  })
66
67
  end
68
+
69
+ it "Does automatically retry a network request after a 2 second timeout for a failed request" do
70
+ ctx = flok_new_user File.read('./spec/kern/assets/rest_service/controller1b.rb'), File.read("./spec/kern/assets/rest_service/config0.rb")
71
+ dump = ctx.evald %{
72
+ dump.base = _embed("my_controller", 0, {}, null);
73
+
74
+ //Drain queue
75
+ int_dispatch([]);
76
+ }
77
+
78
+ @driver.ignore_up_to("if_net_req")
79
+ msg = @driver.mexpect("if_net_req", ["GET", "http://localhost:8080/test", {"hello" => "world"}, Integer], 1) #network priority
80
+
81
+ #Last argument is teh tp_base for if_net_req
82
+ tp_base = msg.last
83
+
84
+ @driver.int "int_net_cb", [
85
+ tp_base, -1, "Error",
86
+ ]
87
+
88
+ dump = ctx.evald %{
89
+ dump.rest_res_params = rest_res_params;
90
+ }
91
+
92
+ expect(dump["rest_res_params"]).to eq({
93
+ "path" => "test",
94
+ "code" => -1,
95
+ "res" => "Error"
96
+ })
97
+
98
+ #Increment the timers
99
+ (4*2).times do
100
+ @driver.int "int_timer", []
101
+ end
102
+
103
+ #Expect a signal for another network request
104
+ @driver.ignore_up_to("if_net_req")
105
+ msg = @driver.mexpect("if_net_req", ["GET", "http://localhost:8080/test", {"hello" => "world"}, Integer], 1) #network priority
106
+ tp_base = msg.last
107
+
108
+ @driver.int "int_net_cb", [
109
+ tp_base, -1, "Error2",
110
+ ]
111
+
112
+ #Re-evaluate the results
113
+ dump = ctx.evald %{ dump.rest_res_params = rest_res_params; }
114
+
115
+ expect(dump["rest_res_params"]).to eq({
116
+ "path" => "test",
117
+ "code" => -1,
118
+ "res" => "Error2"
119
+ })
120
+ end
121
+
122
+ it "Does not automatically retry a network request after a 2 second timeout for a failed request where the view-controller is no longer available" do
123
+ ctx = flok_new_user File.read('./spec/kern/assets/rest_service/controller1b.rb'), File.read("./spec/kern/assets/rest_service/config0.rb")
124
+ ctx.evald %{
125
+ _embed("root_controller", 0, {}, null);
126
+
127
+ //Drain queue
128
+ int_dispatch([]);
129
+ }
130
+
131
+
132
+ @driver.ignore_up_to("if_net_req")
133
+ msg = @driver.mexpect("if_net_req", ["GET", "http://localhost:8080/test", {"hello" => "world"}, Integer], 1) #network priority
134
+
135
+ #Last argument is teh tp_base for if_net_req
136
+ tp_base = msg.last
137
+
138
+ @driver.int "int_net_cb", [
139
+ tp_base, -1, "Error",
140
+ ]
141
+
142
+ dump = ctx.evald %{
143
+ dump.rest_res_params = rest_res_params;
144
+ dump.base = root_base
145
+ }
146
+
147
+ expect(dump["rest_res_params"]).to eq({
148
+ "path" => "test",
149
+ "code" => -1,
150
+ "res" => "Error"
151
+ })
152
+
153
+ @driver.int "int_event", [ dump["base"], "next_clicked", {} ]
154
+
155
+ #Increment the timers
156
+ (4*2).times do
157
+ @driver.int "int_timer", []
158
+ end
159
+
160
+ expect { @driver.ignore_up_to("if_net_req") }.to raise_error /Waited/
161
+
162
+ end
67
163
  end
@@ -78,7 +78,7 @@ module Webbing
78
78
  @pipe.puts("ready")
79
79
  }
80
80
  @server.mount_proc '/' do |req, res|
81
- @pipe.puts req.query.to_json
81
+ @pipe.puts({:params => req.query, :headers => req.header}.to_json)
82
82
  res.body = @pipe.readline
83
83
  res.header["Access-Control-Allow-Origin"] = "*"
84
84
  res.header["Content-Type"] = "json/text"
@@ -96,8 +96,10 @@ module Webbing
96
96
  Thread.new do
97
97
  begin
98
98
  loop do
99
- params = JSON.parse(@pipe.readline)
100
- res = @block.call(params)
99
+ info = JSON.parse(@pipe.readline)
100
+ params = info["params"]
101
+ headers = info["headers"]
102
+ res = @block.call(params, headers)
101
103
  @pipe.puts res.to_json
102
104
  end
103
105
  rescue => e
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flok
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.103
4
+ version: 0.0.105
5
5
  platform: ruby
6
6
  authors:
7
7
  - seo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-07 00:00:00.000000000 Z
11
+ date: 2016-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: execjs
@@ -307,6 +307,7 @@ files:
307
307
  - app/drivers/chrome/spec/spec/hook_spec.js
308
308
  - app/drivers/chrome/spec/spec/sel_scope_spec.js
309
309
  - app/drivers/chrome/spec/spec/vars_spec.js
310
+ - app/drivers/chrome/src/about.js
310
311
  - app/drivers/chrome/src/bench.js
311
312
  - app/drivers/chrome/src/config0.js
312
313
  - app/drivers/chrome/src/controller.js
@@ -314,6 +315,7 @@ files:
314
315
  - app/drivers/chrome/src/dispatch.js
315
316
  - app/drivers/chrome/src/dlink.js
316
317
  - app/drivers/chrome/src/event.js
318
+ - app/drivers/chrome/src/guid.js
317
319
  - app/drivers/chrome/src/helpers.js
318
320
  - app/drivers/chrome/src/hook.js
319
321
  - app/drivers/chrome/src/net.js
@@ -333,6 +335,7 @@ files:
333
335
  - app/kern/gen_id.js
334
336
  - app/kern/kern_log.js
335
337
  - app/kern/macro.rb
338
+ - app/kern/mod/about.js
336
339
  - app/kern/mod/controller.js
337
340
  - app/kern/mod/debug.js
338
341
  - app/kern/mod/dlink.js
@@ -344,6 +347,7 @@ files:
344
347
  - app/kern/mod/segue.js
345
348
  - app/kern/mod/sockio.js
346
349
  - app/kern/mod/timer.js
350
+ - app/kern/mod/udid.js
347
351
  - app/kern/mod/ui.js
348
352
  - app/kern/net_cb.js
349
353
  - app/kern/pagers/pg_dummy.js
@@ -379,6 +383,7 @@ files:
379
383
  - docs/kernel_handbook/find_view.md
380
384
  - docs/kernel_handbook/hooks.md
381
385
  - docs/messaging.md
386
+ - docs/mod/about.md
382
387
  - docs/mod/controller.md
383
388
  - docs/mod/debug.md
384
389
  - docs/mod/debug/dump_ui.md
@@ -428,7 +433,8 @@ files:
428
433
  - lib/flok/user_compiler.rb
429
434
  - lib/flok/user_compiler_templates/ctable.js.erb
430
435
  - lib/flok/user_hook_generators/goto.rb
431
- - lib/flok/user_hook_generators/helpers.rb
436
+ - lib/flok/user_hook_generators/pop.rb
437
+ - lib/flok/user_hook_generators/push.rb
432
438
  - lib/flok/utilities.rb
433
439
  - lib/flok/version.rb
434
440
  - logo.png
@@ -460,6 +466,7 @@ files:
460
466
  - spec/etc/user_compiler/controller0bg.rb
461
467
  - spec/etc/user_compiler/controller0timer.rb
462
468
  - spec/etc/user_compiler/data.js
469
+ - spec/iface/driver/about_spec.rb
463
470
  - spec/iface/driver/assets/debug_socket_server.js
464
471
  - spec/iface/driver/assets/node_modules/socket.io/.npmignore
465
472
  - spec/iface/driver/assets/node_modules/socket.io/.travis.yml
@@ -1190,6 +1197,7 @@ files:
1190
1197
  - spec/iface/kern/net_spec.rb
1191
1198
  - spec/iface/kern/ping_spec.rb
1192
1199
  - spec/iface/kern/pipe_spec.rb
1200
+ - spec/kern/about_spec.rb
1193
1201
  - spec/kern/assets/blank.rb
1194
1202
  - spec/kern/assets/choose_action.rb
1195
1203
  - spec/kern/assets/choose_action_sync.rb
@@ -1231,6 +1239,13 @@ files:
1231
1239
  - spec/kern/assets/goto2.rb
1232
1240
  - spec/kern/assets/hook_entry_points/controller0.rb
1233
1241
  - spec/kern/assets/hook_entry_points/controller0a.rb
1242
+ - spec/kern/assets/hook_entry_points/controller0a_push.rb
1243
+ - spec/kern/assets/hook_entry_points/controller0b.rb
1244
+ - spec/kern/assets/hook_entry_points/controller0bc.rb
1245
+ - spec/kern/assets/hook_entry_points/controller_0b_pop.rb
1246
+ - spec/kern/assets/hook_entry_points/controller_0b_pop2.rb
1247
+ - spec/kern/assets/hook_entry_points/controller_0b_push.rb
1248
+ - spec/kern/assets/hook_entry_points/controller_0b_push2.rb
1234
1249
  - spec/kern/assets/interval.rb
1235
1250
  - spec/kern/assets/interval2.rb
1236
1251
  - spec/kern/assets/interval3.rb
@@ -1244,6 +1259,7 @@ files:
1244
1259
  - spec/kern/assets/rest_service/config0.rb
1245
1260
  - spec/kern/assets/rest_service/controller0.rb
1246
1261
  - spec/kern/assets/rest_service/controller1.rb
1262
+ - spec/kern/assets/rest_service/controller1b.rb
1247
1263
  - spec/kern/assets/rest_service/controller2.rb
1248
1264
  - spec/kern/assets/send_event.rb
1249
1265
  - spec/kern/assets/service0.rb
@@ -1373,7 +1389,9 @@ files:
1373
1389
  - spec/kern/functions_spec.rb
1374
1390
  - spec/kern/global_functions_spec.rb
1375
1391
  - spec/kern/hook_entry_points_and_manifest_spec.rb
1376
- - spec/kern/hook_user_generators_spec.rb
1392
+ - spec/kern/hook_goto_user_generators_spec.rb
1393
+ - spec/kern/hook_pop_user_generators_spec.rb
1394
+ - spec/kern/hook_push_user_generators_spec.rb
1377
1395
  - spec/kern/rest_service_spec.rb
1378
1396
  - spec/kern/rtc_spec.rb
1379
1397
  - spec/kern/service_controller_spec.rb
@@ -1440,6 +1458,7 @@ test_files:
1440
1458
  - spec/etc/user_compiler/controller0bg.rb
1441
1459
  - spec/etc/user_compiler/controller0timer.rb
1442
1460
  - spec/etc/user_compiler/data.js
1461
+ - spec/iface/driver/about_spec.rb
1443
1462
  - spec/iface/driver/assets/debug_socket_server.js
1444
1463
  - spec/iface/driver/assets/node_modules/socket.io/.npmignore
1445
1464
  - spec/iface/driver/assets/node_modules/socket.io/.travis.yml
@@ -2170,6 +2189,7 @@ test_files:
2170
2189
  - spec/iface/kern/net_spec.rb
2171
2190
  - spec/iface/kern/ping_spec.rb
2172
2191
  - spec/iface/kern/pipe_spec.rb
2192
+ - spec/kern/about_spec.rb
2173
2193
  - spec/kern/assets/blank.rb
2174
2194
  - spec/kern/assets/choose_action.rb
2175
2195
  - spec/kern/assets/choose_action_sync.rb
@@ -2211,6 +2231,13 @@ test_files:
2211
2231
  - spec/kern/assets/goto2.rb
2212
2232
  - spec/kern/assets/hook_entry_points/controller0.rb
2213
2233
  - spec/kern/assets/hook_entry_points/controller0a.rb
2234
+ - spec/kern/assets/hook_entry_points/controller0a_push.rb
2235
+ - spec/kern/assets/hook_entry_points/controller0b.rb
2236
+ - spec/kern/assets/hook_entry_points/controller0bc.rb
2237
+ - spec/kern/assets/hook_entry_points/controller_0b_pop.rb
2238
+ - spec/kern/assets/hook_entry_points/controller_0b_pop2.rb
2239
+ - spec/kern/assets/hook_entry_points/controller_0b_push.rb
2240
+ - spec/kern/assets/hook_entry_points/controller_0b_push2.rb
2214
2241
  - spec/kern/assets/interval.rb
2215
2242
  - spec/kern/assets/interval2.rb
2216
2243
  - spec/kern/assets/interval3.rb
@@ -2224,6 +2251,7 @@ test_files:
2224
2251
  - spec/kern/assets/rest_service/config0.rb
2225
2252
  - spec/kern/assets/rest_service/controller0.rb
2226
2253
  - spec/kern/assets/rest_service/controller1.rb
2254
+ - spec/kern/assets/rest_service/controller1b.rb
2227
2255
  - spec/kern/assets/rest_service/controller2.rb
2228
2256
  - spec/kern/assets/send_event.rb
2229
2257
  - spec/kern/assets/service0.rb
@@ -2353,7 +2381,9 @@ test_files:
2353
2381
  - spec/kern/functions_spec.rb
2354
2382
  - spec/kern/global_functions_spec.rb
2355
2383
  - spec/kern/hook_entry_points_and_manifest_spec.rb
2356
- - spec/kern/hook_user_generators_spec.rb
2384
+ - spec/kern/hook_goto_user_generators_spec.rb
2385
+ - spec/kern/hook_pop_user_generators_spec.rb
2386
+ - spec/kern/hook_push_user_generators_spec.rb
2357
2387
  - spec/kern/rest_service_spec.rb
2358
2388
  - spec/kern/rtc_spec.rb
2359
2389
  - spec/kern/service_controller_spec.rb