flok 0.0.31 → 0.0.32
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/app/drivers/chrome/src/event.js +1 -0
- data/app/kern/controller.js +1 -0
- data/app/kern/mod/debug.js +18 -7
- data/app/kern/mod/event.js +8 -0
- data/docs/branches.md +4 -0
- data/docs/controllers.md +2 -2
- data/docs/mod/debug.md +5 -2
- data/docs/mod/debug/dump_ui.md +1 -0
- data/lib/flok/user_compiler.rb +10 -12
- data/lib/flok/user_compiler_templates/ctable.js.erb +1 -1
- data/lib/flok/version.rb +1 -1
- data/spec/etc/cli_spec.rb +0 -2
- data/spec/etc/user_compiler/controller0.rb +0 -1
- data/spec/etc/user_compiler_spec.rb +3 -2
- data/spec/kern/assets/controller0.rb +0 -1
- data/spec/kern/assets/controller1.rb +0 -2
- data/spec/kern/assets/controller_bare.rb +3 -2
- data/spec/kern/assets/controller_def.rb +0 -1
- data/spec/kern/assets/{controller_context.rb → controller_describe.rb} +3 -2
- data/spec/kern/assets/controller_spots.rb +6 -1
- data/spec/kern/assets/controller_spots_embed.rb +6 -3
- data/spec/kern/assets/controller_spots_embed_removed.rb +9 -3
- data/spec/kern/assets/embed_info.rb +0 -2
- data/spec/kern/assets/event_gw.rb +0 -2
- data/spec/kern/assets/forward_and_back.rb +37 -0
- data/spec/kern/assets/goto.rb +0 -3
- data/spec/kern/assets/goto2.rb +0 -2
- data/spec/kern/assets/lower_event.rb +0 -2
- data/spec/kern/assets/raise_event.rb +0 -2
- data/spec/kern/assets/rest_service.rb +0 -1
- data/spec/kern/assets/send_event.rb +0 -1
- data/spec/kern/assets/test_event.rb +0 -1
- data/spec/kern/assets/test_event2.rb +0 -2
- data/spec/kern/assets/test_event3.rb +0 -2
- data/spec/kern/assets/timer_service.rb +0 -1
- data/spec/kern/controller_spec.rb +12 -12
- data/spec/kern/debug_spec.rb +12 -6
- data/spec/kern/debug_ui_spec.rb +266 -186
- data/spec/kern/rest_service_spec.rb +1 -1
- data/spec/kern/timer_service_spec.rb +1 -1
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 00cd49da5335192729606171ad9984480b369ebe
|
4
|
+
data.tar.gz: 9a7bc120ce65ee6203b56cbd0c05eaf3437ff9a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fdfc40123d710b11c1ec8d5d57d8de48d1855b70d1a479198e9fe49a6e24ae0759daa1c813515f4a38d16025e5aee0cb26e522d71a6a902807de38401e0499d
|
7
|
+
data.tar.gz: 699c0f41acff97be48740a378bcaf89f6bac7c4eebf13f7de22999d23d54bd48d17e58e64e9c4e56f678020e3139b71db6368a7a8e84cd1e168aabef4ee95a3a
|
data/app/kern/controller.js
CHANGED
@@ -16,6 +16,7 @@
|
|
16
16
|
//Embed a view-controller into a named spot. If spot is null, then it is assumed
|
17
17
|
//you are referring to the root-spot.
|
18
18
|
function _embed(vc_name, sp, context, event_gw) {
|
19
|
+
console.log("Eembed request for vc named: " + vc_name + " into spot: " + sp);
|
19
20
|
//Lookup VC ctable entry
|
20
21
|
var cte = ctable[vc_name];
|
21
22
|
|
data/app/kern/mod/debug.js
CHANGED
@@ -38,7 +38,6 @@ function int_debug_dump_ui() {
|
|
38
38
|
payload.children.push(rvc);
|
39
39
|
}
|
40
40
|
|
41
|
-
//Notify with the 'debug' pointer of -333
|
42
41
|
SEND("main", "if_event", -333, "debug_dump_ui_res", payload);
|
43
42
|
}
|
44
43
|
|
@@ -54,12 +53,17 @@ function dump_ui_recurse(ptr, node) {
|
|
54
53
|
|
55
54
|
//Live controller instance
|
56
55
|
var cinfo = tel_deref(ptr);
|
56
|
+
var cte = cinfo.cte;
|
57
57
|
|
58
58
|
//Get action
|
59
|
-
|
59
|
+
var action = cinfo.action;
|
60
|
+
node['action'] = action;
|
60
61
|
|
61
62
|
//Get name from the ctable reference
|
62
|
-
node['name'] =
|
63
|
+
node['name'] = cte.name;
|
64
|
+
|
65
|
+
//Get a list of events that this action responds to
|
66
|
+
node['events'] = Object.keys(cte.actions[action].handlers);
|
63
67
|
|
64
68
|
//Recurse with the 'main' view (ptr+1) in this view controller's
|
65
69
|
//first child slot. (there is only one view per view controller)
|
@@ -112,9 +116,16 @@ function dump_ui_recurse(ptr, node) {
|
|
112
116
|
}
|
113
117
|
|
114
118
|
////////////////////////////////////////////////////////////
|
115
|
-
//Controller
|
119
|
+
//Controller describe
|
116
120
|
////////////////////////////////////////////////////////////
|
117
|
-
function
|
118
|
-
|
119
|
-
|
121
|
+
function int_debug_controller_describe(bp) {
|
122
|
+
//Grab the controller's instance and table entry
|
123
|
+
var cinfo = tel_deref(bp);
|
124
|
+
var cte = cinfo.cte;
|
125
|
+
|
126
|
+
var payload = {
|
127
|
+
context: cinfo.context,
|
128
|
+
events: Object.keys(cte.actions[cinfo.action].handlers)
|
129
|
+
};
|
130
|
+
SEND("main", "if_event", -333, "debug_controller_describe_res", payload);
|
120
131
|
}
|
data/app/kern/mod/event.js
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
evt = {};
|
3
3
|
|
4
4
|
function int_event(ep, event_name, info) {
|
5
|
+
<% if @debug %>
|
6
|
+
if (typeof ep == 'string' || ep instanceof String) {
|
7
|
+
console.log("WARN: received ep of '" + ep + "' that was a string!!!");
|
8
|
+
console.log("name: " + name);
|
9
|
+
console.log("info: " + JSON.stringify(info));
|
10
|
+
}
|
11
|
+
<% end %>
|
12
|
+
|
5
13
|
var f = evt[ep];
|
6
14
|
if (f != undefined) {
|
7
15
|
f(ep, event_name, info);
|
data/docs/branches.md
ADDED
data/docs/controllers.md
CHANGED
@@ -18,11 +18,11 @@ event, the event is passed to the `event_gw` (event gateway) of the `controller_
|
|
18
18
|
on the structure. If `event_gw` is `null`, then the event is ignored.
|
19
19
|
|
20
20
|
###Writing a `flok user controller (fuc)`
|
21
|
-
Let's write a `fuc` controller
|
21
|
+
Let's write a `fuc` controller that has 2 tabs and a content area. The view is implicitly the same name of the controller, in this case it would be
|
22
|
+
`tab_controller`
|
22
23
|
|
23
24
|
```ruby
|
24
25
|
controller "tab_controller" do
|
25
|
-
view "tab_container"
|
26
26
|
spaces "content"
|
27
27
|
|
28
28
|
#You can also define macros for shared action traits
|
data/docs/mod/debug.md
CHANGED
@@ -14,8 +14,11 @@ the port -333 with the message name `eval_res` and the info as `{info: res}` whe
|
|
14
14
|
|
15
15
|
`int_debug_dump_ui` - See [Debug Dump UI](./debug/dump_ui.md) for specifics.
|
16
16
|
|
17
|
-
`
|
18
|
-
|
17
|
+
`int_debug_controller_describe(bp)` - Retreive information about a controller. Sends a `if_event` to port `-333` named `debug_controller_describe_res` with the payload of the controller's
|
18
|
+
describe at `bp`.
|
19
|
+
* describe returns
|
20
|
+
* `context` - The context of the controller which is `cinfo.context`
|
21
|
+
* `events` - The list of events the current controller action will respond to, **current action not the same as displayed if it's changed**
|
19
22
|
|
20
23
|
### Driver Spec related
|
21
24
|
* `if_debug_spec_assoc(base, key)` - When this message is received, the client shall return a message called `spec` containing the value
|
data/docs/mod/debug/dump_ui.md
CHANGED
@@ -18,6 +18,7 @@ Ontop of the base node, the type defines a child class of the node:
|
|
18
18
|
* `name` - The name of the view controller (human friendly)
|
19
19
|
* `action` - Current action name (human friendly)
|
20
20
|
* `ptr` - The base pointer of this view controller
|
21
|
+
* `events` - A list of events that the current action is capabable of handling
|
21
22
|
* `view` - View
|
22
23
|
* `name` - The name of the view
|
23
24
|
* `ptr` - The pointer to the view
|
data/lib/flok/user_compiler.rb
CHANGED
@@ -114,6 +114,7 @@ module Flok
|
|
114
114
|
#Calculate spot index as an offset from the base address using the index of the spot in the spots
|
115
115
|
#address offset
|
116
116
|
res = %{
|
117
|
+
|
117
118
|
var ptr = _embed("#{vc_name}", __base__+#{spot_index}+1, #{context}, __base__);
|
118
119
|
__info__.embeds[#{spot_index-1}].push(ptr);
|
119
120
|
}
|
@@ -210,20 +211,21 @@ module Flok
|
|
210
211
|
}
|
211
212
|
}
|
212
213
|
|
213
|
-
//Send off event for action change
|
214
|
-
main_q.push([3, "if_event", __base__, "action", {
|
215
|
-
from: old_action,
|
216
|
-
to: "#{action_name}"
|
217
|
-
}]);
|
218
|
-
|
219
|
-
|
220
214
|
//Prep embeds array, embeds[0] refers to the spot bp+2 (bp is vc, bp+1 is main)
|
221
215
|
__info__.embeds = [];
|
222
216
|
for (var i = 1; i < #{@controller.spots.count}; ++i) {
|
223
217
|
__info__.embeds.push([]);
|
224
218
|
}
|
225
219
|
|
220
|
+
//Call on_entry for the new action via the singleton on_entry
|
221
|
+
//located in ctable
|
226
222
|
__info__.cte.actions[__info__.action].on_entry(__base__)
|
223
|
+
|
224
|
+
//Send off event for action change
|
225
|
+
main_q.push([3, "if_event", __base__, "action", {
|
226
|
+
from: old_action,
|
227
|
+
to: "#{action_name}"
|
228
|
+
}]);
|
227
229
|
}
|
228
230
|
out.puts res
|
229
231
|
#Request(service_name, payload, event_name_cb)
|
@@ -263,7 +265,7 @@ module Flok
|
|
263
265
|
end
|
264
266
|
|
265
267
|
class UserCompilerController
|
266
|
-
attr_accessor :
|
268
|
+
attr_accessor :name, :spots, :macros
|
267
269
|
def initialize name, ctx, &block
|
268
270
|
@name = name
|
269
271
|
@ctx = ctx
|
@@ -273,10 +275,6 @@ module Flok
|
|
273
275
|
self.instance_eval(&block)
|
274
276
|
end
|
275
277
|
|
276
|
-
def view name
|
277
|
-
@root_view = name
|
278
|
-
end
|
279
|
-
|
280
278
|
#Create an action macro
|
281
279
|
def macro name, &block
|
282
280
|
@macros[name] = block
|
data/lib/flok/version.rb
CHANGED
data/spec/etc/cli_spec.rb
CHANGED
@@ -168,7 +168,6 @@ it "Can create a new project with correct directories" do
|
|
168
168
|
#Now add a file
|
169
169
|
File.write "./app/controllers/test2.rb", %{
|
170
170
|
controller "my_controller" do
|
171
|
-
view "my_controller"
|
172
171
|
action "my_action" do
|
173
172
|
on_entry %{
|
174
173
|
}
|
@@ -216,7 +215,6 @@ it "Can create a new project with correct directories" do
|
|
216
215
|
#Now add a file
|
217
216
|
File.write "./app/controllers/test2.rb", %{
|
218
217
|
controller "my_controller" do
|
219
|
-
view "my_controller"
|
220
218
|
action "my_action" do
|
221
219
|
on_entry %{
|
222
220
|
}
|
@@ -27,10 +27,11 @@ RSpec.describe "User compiler" do
|
|
27
27
|
compiler = Flok::UserCompiler
|
28
28
|
end
|
29
29
|
|
30
|
-
it "Can compile a controller and give up the root
|
30
|
+
it "Can compile a controller and give up the root
|
31
|
+
iew" do
|
31
32
|
ctx = compile "controller0"
|
32
33
|
root_view = ctx.eval "ctable.my_controller.root_view"
|
33
|
-
expect(root_view).to eq("
|
34
|
+
expect(root_view).to eq("my_controller")
|
34
35
|
end
|
35
36
|
|
36
37
|
it "Can compile a controller and contain a list of actions" do
|
@@ -1,5 +1,4 @@
|
|
1
1
|
controller :my_controller do
|
2
|
-
view :test_view
|
3
2
|
spots "hello", "world"
|
4
3
|
|
5
4
|
action :my_action do
|
@@ -14,7 +13,6 @@ controller :my_controller do
|
|
14
13
|
end
|
15
14
|
|
16
15
|
controller :my_sub_controller do
|
17
|
-
view :test_view2
|
18
16
|
spots "hello", "world"
|
19
17
|
|
20
18
|
action :my_action do
|
@@ -1,19 +1,22 @@
|
|
1
1
|
controller :my_controller do
|
2
|
-
view "my_view"
|
3
2
|
spots "one", "two"
|
4
3
|
|
5
4
|
action :index do
|
6
5
|
on_entry %{
|
7
6
|
Embed("my_other_controller", "one", {});
|
8
7
|
}
|
8
|
+
|
9
|
+
on "test1", %{
|
10
|
+
}
|
9
11
|
end
|
10
12
|
end
|
11
13
|
|
12
14
|
controller :my_other_controller do
|
13
|
-
view "my_other_view"
|
14
|
-
|
15
15
|
action :index do
|
16
16
|
on_entry %{
|
17
17
|
}
|
18
|
+
|
19
|
+
on "test2", %{
|
20
|
+
}
|
18
21
|
end
|
19
22
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
controller :my_controller do
|
2
|
-
view "my_view"
|
3
2
|
spots "one", "two"
|
4
3
|
|
5
4
|
action :index do
|
@@ -10,19 +9,26 @@ controller :my_controller do
|
|
10
9
|
on "next", %{
|
11
10
|
Goto("other");
|
12
11
|
}
|
12
|
+
|
13
|
+
on "test1", %{
|
14
|
+
}
|
13
15
|
end
|
14
16
|
|
15
17
|
action :other do
|
16
18
|
on_entry %{
|
17
19
|
}
|
20
|
+
|
21
|
+
on "test2", %{
|
22
|
+
}
|
18
23
|
end
|
19
24
|
end
|
20
25
|
|
21
26
|
controller :my_other_controller do
|
22
|
-
view "my_other_view"
|
23
|
-
|
24
27
|
action :index do
|
25
28
|
on_entry %{
|
26
29
|
}
|
30
|
+
|
31
|
+
on "test3", %{
|
32
|
+
}
|
27
33
|
end
|
28
34
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
controller :my_controller do
|
2
|
-
view :test_view
|
3
2
|
spots "hello", "world"
|
4
3
|
|
5
4
|
action :my_action do
|
@@ -14,7 +13,6 @@ controller :my_controller do
|
|
14
13
|
end
|
15
14
|
|
16
15
|
controller :my_sub_controller do
|
17
|
-
view :test_view2
|
18
16
|
spots "hello", "world"
|
19
17
|
|
20
18
|
action :my_action do
|
@@ -1,5 +1,4 @@
|
|
1
1
|
controller :my_controller do
|
2
|
-
view :test_view
|
3
2
|
spots "hello", "world"
|
4
3
|
|
5
4
|
action :my_action do
|
@@ -10,7 +9,6 @@ controller :my_controller do
|
|
10
9
|
end
|
11
10
|
|
12
11
|
controller :my_sub_controller do
|
13
|
-
view :test_view2
|
14
12
|
spots "hello", "world"
|
15
13
|
|
16
14
|
action :my_action do
|
@@ -0,0 +1,37 @@
|
|
1
|
+
controller :fabric do
|
2
|
+
spots "content"
|
3
|
+
|
4
|
+
action "one" do
|
5
|
+
on_entry %{
|
6
|
+
Embed("one", "content", {});
|
7
|
+
}
|
8
|
+
|
9
|
+
on "next_clicked", %{
|
10
|
+
Goto("two");
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
action "two" do
|
15
|
+
on_entry %{
|
16
|
+
Embed("two", "content", {});
|
17
|
+
}
|
18
|
+
|
19
|
+
on "back_clicked", %{
|
20
|
+
Goto("one");
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
controller :one do
|
26
|
+
action "index" do
|
27
|
+
on_entry %{
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
controller :two do
|
33
|
+
action "index" do
|
34
|
+
on_entry %{
|
35
|
+
}
|
36
|
+
end
|
37
|
+
end
|