flok 0.0.56 → 0.0.57
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/kern/controller.js +8 -9
- data/app/kern/services/test.rb +8 -0
- data/docs/controllers.md +30 -2
- data/docs/services/test.md +39 -0
- data/lib/flok/user_compiler.rb +19 -0
- data/lib/flok/user_compiler_templates/ctable.js.erb +1 -0
- data/lib/flok/version.rb +1 -1
- data/spec/kern/assets/choose_action.rb +24 -0
- data/spec/kern/assets/choose_action_async.rb +25 -0
- data/spec/kern/assets/choose_action_sync.rb +23 -0
- data/spec/kern/assets/choose_action_sync_no_goto.rb +22 -0
- data/spec/kern/assets/no_choose_action.rb +16 -0
- data/spec/kern/assets/rest_service/controller2.rb +17 -0
- data/spec/kern/assets/test_service/config0.rb +3 -0
- data/spec/kern/assets/test_service/controller0.rb +9 -0
- data/spec/kern/assets/test_service/controller1.rb +16 -0
- data/spec/kern/assets/test_service/controller2.rb +16 -0
- data/spec/kern/assets/test_service_config.rb +2 -0
- data/spec/kern/controller_spec.rb +102 -1
- data/spec/kern/test_service_spec.rb +83 -0
- metadata +27 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cecb7632c1464b7d9b8a55ed9d08f5eb4263d310
|
4
|
+
data.tar.gz: 578139d4896e901f26be711a8db1ed757f19c916
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b927b5dd005df16cb2e8b909892e9779b5b8966112c94b53cfa3cd0823225c646ac92a5111611099fb79e12b8eed14ecd0c6028665732916e8d5494fd189213
|
7
|
+
data.tar.gz: 47a932f03f912ab6c601f75c6fc6a8d5d0a9c7f99028d315ca31ce93bb3f3114161e7effe9202baa585ca8af095b7c5e035d26e8c7357dd0e19a9e3580b1d647
|
data/app/kern/controller.js
CHANGED
@@ -37,9 +37,6 @@ function _embed(vc_name, sp, context, event_gw) {
|
|
37
37
|
//the 'main' spot, and so on
|
38
38
|
var base = tels(spots.length+1);
|
39
39
|
|
40
|
-
//TODO: choose action
|
41
|
-
var action = Object.keys(cte.actions)[0];
|
42
|
-
|
43
40
|
spots.unshift("vc") //Borrow spots array to place 'vc' in the front => ['vc', 'main', ...]
|
44
41
|
//Initialize the view at base+1 (base+0 is vc), and the vc at base+0
|
45
42
|
SEND("main", "if_init_view", vname, {}, base+1, spots);
|
@@ -78,7 +75,7 @@ function _embed(vc_name, sp, context, event_gw) {
|
|
78
75
|
//Create controller information struct
|
79
76
|
var info = {
|
80
77
|
context: context,
|
81
|
-
action:
|
78
|
+
action: "choose_action",
|
82
79
|
cte: cte,
|
83
80
|
embeds: embeds,
|
84
81
|
event_gw: event_gw
|
@@ -94,11 +91,13 @@ function _embed(vc_name, sp, context, event_gw) {
|
|
94
91
|
cte.__init__(base);
|
95
92
|
|
96
93
|
//Call the on_entry function with the base address
|
97
|
-
cte.actions[action].on_entry(base);
|
94
|
+
cte.actions[info.action].on_entry(base);
|
98
95
|
|
99
|
-
|
100
|
-
|
101
|
-
|
96
|
+
<% if @debug %>
|
97
|
+
if (info.action === "choose_action") {
|
98
|
+
throw "choose_action did not specify a Goto";
|
99
|
+
}
|
100
|
+
<% end %>
|
102
101
|
|
103
102
|
return base;
|
104
103
|
}
|
@@ -111,7 +110,7 @@ function controller_event_callback(ep, event_name, info) {
|
|
111
110
|
//Now, get the ctable entry
|
112
111
|
var cte = inst.cte;
|
113
112
|
|
114
|
-
//Now find the event handler
|
113
|
+
//Now find the event handler for the current action of the controller
|
115
114
|
var handler = cte.actions[inst.action].handlers[event_name];
|
116
115
|
if (handler !== undefined) {
|
117
116
|
handler(ep, info);
|
data/app/kern/services/test.rb
CHANGED
data/docs/controllers.md
CHANGED
@@ -24,9 +24,11 @@ Let's write a `fuc` controller that has 2 tabs and a content area. The view is i
|
|
24
24
|
```ruby
|
25
25
|
controller "tab_controller" do
|
26
26
|
spots "content"
|
27
|
-
services "my_service" #See docs on services for what this means
|
27
|
+
services "my_service", "vm" #See docs on services for what this means
|
28
28
|
|
29
|
-
#Global on_entry, will only be run once on the first action
|
29
|
+
#Global on_entry, will only be run once on the first action. If chooose_action
|
30
|
+
#is used, this is run before choose_action, but still only once throughout this
|
31
|
+
#controller's lifetime
|
30
32
|
on_entry %{
|
31
33
|
}
|
32
34
|
|
@@ -37,6 +39,32 @@ controller "tab_controller" do
|
|
37
39
|
end
|
38
40
|
end
|
39
41
|
|
42
|
+
#Optional
|
43
|
+
#Called after on_entry, but before any action is entered. This is a pseudo
|
44
|
+
#action and assumes that everything you do inside will be performed fully
|
45
|
+
#synchronously. This action will not notify your view hierarchy that the
|
46
|
+
#action has been entered. Only supports Request and Goto macros. Embedding will
|
47
|
+
#result in undefined behavior. If you decide to not use choose_action then
|
48
|
+
#the first action will be the action that is run first
|
49
|
+
choose_action do
|
50
|
+
on_entry %{
|
51
|
+
var info = {ns: "session", id: "session"};
|
52
|
+
Request("vm", "read_sync", info);
|
53
|
+
}
|
54
|
+
|
55
|
+
#Like every normal action, choose_action supports getting events
|
56
|
+
#Here we are checking a synchronous read for the session information
|
57
|
+
#You *must* use only synchronous events here
|
58
|
+
on "read_sync_res", %{
|
59
|
+
if (params.page === null) {
|
60
|
+
Goto("home");
|
61
|
+
} else {
|
62
|
+
Goto("about");
|
63
|
+
}
|
64
|
+
}
|
65
|
+
end
|
66
|
+
|
67
|
+
#Actions are independent of one another, you may not name an action "choose_action"
|
40
68
|
#The home tab
|
41
69
|
action "home" do
|
42
70
|
#Macros can be called via their name
|
@@ -0,0 +1,39 @@
|
|
1
|
+
#Test Service
|
2
|
+
This is the test service. Used for various specs
|
3
|
+
|
4
|
+
#Requests
|
5
|
+
* `test_sync` - Will send you a synchronous response via the event `test_sync_res` that contains
|
6
|
+
the same parameters that you sent
|
7
|
+
* `test_async` - Will send you a synchronous response via the event `test_async_res` that contains
|
8
|
+
e.g.
|
9
|
+
|
10
|
+
###`test_sync`
|
11
|
+
```ruby
|
12
|
+
on_entry %{
|
13
|
+
var info = {
|
14
|
+
foo: "bar"
|
15
|
+
}
|
16
|
+
Request("test", "test_sync", info);
|
17
|
+
}
|
18
|
+
|
19
|
+
#This is called immediately
|
20
|
+
on "test_sync_res", %{
|
21
|
+
test_sync_res_params = params; //params will equal {foo: "bar"}
|
22
|
+
}
|
23
|
+
```
|
24
|
+
|
25
|
+
###`test_async`
|
26
|
+
```ruby
|
27
|
+
on_entry %{
|
28
|
+
var info = {
|
29
|
+
foo: "bar"
|
30
|
+
}
|
31
|
+
Request("test", "test_async", info);
|
32
|
+
}
|
33
|
+
|
34
|
+
#This is called after the next int_event comes through via int_event_defer
|
35
|
+
on "test_async_res", %{
|
36
|
+
test_async_res_params = params; //params will equal {foo: "bar"}
|
37
|
+
}
|
38
|
+
```
|
39
|
+
|
data/lib/flok/user_compiler.rb
CHANGED
@@ -196,6 +196,11 @@ module Flok
|
|
196
196
|
//located in ctable
|
197
197
|
__info__.cte.actions[__info__.action].on_entry(__base__)
|
198
198
|
|
199
|
+
//'choose_action' pseudo-action will be sent as 'null' as it's the initial state
|
200
|
+
if (old_action === "choose_action") {
|
201
|
+
old_action = null;
|
202
|
+
}
|
203
|
+
|
199
204
|
//Send off event for action change
|
200
205
|
main_q.push([3, "if_event", __base__, "action", {
|
201
206
|
from: old_action,
|
@@ -479,6 +484,16 @@ module Flok
|
|
479
484
|
@controller = self
|
480
485
|
|
481
486
|
self.instance_eval(&block)
|
487
|
+
|
488
|
+
#Ensure that choose_action exists
|
489
|
+
actions = @ctx.actions_for_controller(@name)
|
490
|
+
unless actions.detect{|e| e.name === :choose_action}
|
491
|
+
@ctx.action self, :choose_action do
|
492
|
+
on_entry %{
|
493
|
+
Goto("#{actions[0].name}");
|
494
|
+
}
|
495
|
+
end
|
496
|
+
end
|
482
497
|
end
|
483
498
|
|
484
499
|
#Create an action macro
|
@@ -490,6 +505,10 @@ module Flok
|
|
490
505
|
@_on_entry = _macro(str)
|
491
506
|
end
|
492
507
|
|
508
|
+
def choose_action &block
|
509
|
+
@ctx.action self, :choose_action, &block
|
510
|
+
end
|
511
|
+
|
493
512
|
#Names of spots
|
494
513
|
def spots *spots
|
495
514
|
@spots += spots
|
data/lib/flok/version.rb
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
controller :my_controller do
|
2
|
+
spots "content"
|
3
|
+
|
4
|
+
on_entry %{
|
5
|
+
on_entry_call_order = ["global_on_entry"];
|
6
|
+
}
|
7
|
+
|
8
|
+
choose_action do
|
9
|
+
on_entry %{
|
10
|
+
on_entry_call_order.push("choose_action_on_entry");
|
11
|
+
|
12
|
+
Goto("index");
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
action "index" do
|
17
|
+
on_entry %{
|
18
|
+
on_entry_call_order.push("index_on_entry");
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
action "alt" do
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
controller :my_controller do
|
2
|
+
spots "content"
|
3
|
+
services "test"
|
4
|
+
|
5
|
+
choose_action do
|
6
|
+
on_entry %{
|
7
|
+
var info = {foo: "bar"};
|
8
|
+
Request("test", "test_async", info);
|
9
|
+
}
|
10
|
+
|
11
|
+
#This is illegal, we are testing for an exception. All
|
12
|
+
#events received in choose_action must be synchronous
|
13
|
+
on "test_async_res", %{
|
14
|
+
Goto("index");
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
action "index" do
|
19
|
+
on_entry %{
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
action "alt" do
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
controller :my_controller do
|
2
|
+
spots "content"
|
3
|
+
services "test"
|
4
|
+
|
5
|
+
choose_action do
|
6
|
+
on_entry %{
|
7
|
+
var info = {foo: "bar"};
|
8
|
+
Request("test", "test_sync", info);
|
9
|
+
}
|
10
|
+
|
11
|
+
on "test_sync_res", %{
|
12
|
+
Goto("index");
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
action "index" do
|
17
|
+
on_entry %{
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
action "alt" do
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
controller :my_controller do
|
2
|
+
spots "content"
|
3
|
+
services "test"
|
4
|
+
|
5
|
+
choose_action do
|
6
|
+
on_entry %{
|
7
|
+
var info = {foo: "bar"};
|
8
|
+
Request("test", "test_sync", info);
|
9
|
+
}
|
10
|
+
|
11
|
+
on "test_sync_res", %{
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
action "index" do
|
16
|
+
on_entry %{
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
action "alt" do
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
controller :my_controller do
|
2
|
+
services :rest
|
3
|
+
|
4
|
+
action :my_action do
|
5
|
+
on_entry %{
|
6
|
+
var info = {
|
7
|
+
path: "test",
|
8
|
+
params: {"hello": "world"}
|
9
|
+
}
|
10
|
+
Request("rest", "get", info);
|
11
|
+
}
|
12
|
+
|
13
|
+
on "rest_res", %{
|
14
|
+
rest_res_params = params;
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
@@ -614,7 +614,6 @@ RSpec.describe "kern:controller_spec" do
|
|
614
614
|
expect(ctx.eval("read_res_called")).to eq(true)
|
615
615
|
end
|
616
616
|
|
617
|
-
|
618
617
|
it "Does allow interval (every) events" do
|
619
618
|
#Compile the controller
|
620
619
|
ctx = flok_new_user File.read('./spec/kern/assets/interval.rb')
|
@@ -767,4 +766,106 @@ RSpec.describe "kern:controller_spec" do
|
|
767
766
|
|
768
767
|
expect(ctx.eval("timer_called")).to eq(2)
|
769
768
|
end
|
769
|
+
|
770
|
+
it "Does support the optional choose_action function" do
|
771
|
+
#Compile the controller
|
772
|
+
ctx = flok_new_user File.read('./spec/kern/assets/choose_action.rb')
|
773
|
+
|
774
|
+
#Run the embed function
|
775
|
+
ctx.eval %{
|
776
|
+
//Call embed on main root view
|
777
|
+
base = _embed("my_controller", 0, {}, null);
|
778
|
+
}
|
779
|
+
end
|
780
|
+
|
781
|
+
it "Does support the optional choose_action function with on_entry, and on_entry is called after on_entry global and before the first actions on_entry" do
|
782
|
+
#Compile the controller
|
783
|
+
ctx = flok_new_user File.read('./spec/kern/assets/choose_action.rb')
|
784
|
+
|
785
|
+
#Run the embed function
|
786
|
+
dump = ctx.evald %{
|
787
|
+
//Call embed on main root view
|
788
|
+
dump.base = _embed("my_controller", 0, {}, null);
|
789
|
+
dump.on_entry_call_order = on_entry_call_order;
|
790
|
+
|
791
|
+
for (var i = 0; i < 100; ++i) {
|
792
|
+
int_dispatch([]);
|
793
|
+
}
|
794
|
+
}
|
795
|
+
|
796
|
+
#Global on_entry should be called before choose_action_on_entry
|
797
|
+
expect(dump["on_entry_call_order"]).to eq([
|
798
|
+
"global_on_entry",
|
799
|
+
"choose_action_on_entry",
|
800
|
+
"index_on_entry"
|
801
|
+
])
|
802
|
+
|
803
|
+
#Expect not to get an event from the choose_action
|
804
|
+
@driver.ignore_up_to "if_event"
|
805
|
+
@driver.mexpect("if_event", [Integer, "action", {"from" => nil, "to" => "index"}])
|
806
|
+
end
|
807
|
+
|
808
|
+
it "Does support a controller that lacks choose_action, the first action will be the first action that appears in the controller" do
|
809
|
+
#Compile the controller
|
810
|
+
ctx = flok_new_user File.read('./spec/kern/assets/no_choose_action.rb')
|
811
|
+
|
812
|
+
#Run the embed function
|
813
|
+
dump = ctx.evald %{
|
814
|
+
//Call embed on main root view
|
815
|
+
dump.base = _embed("my_controller", 0, {}, null);
|
816
|
+
dump.on_entry_call_order = on_entry_call_order;
|
817
|
+
|
818
|
+
for (var i = 0; i < 100; ++i) {
|
819
|
+
int_dispatch([]);
|
820
|
+
}
|
821
|
+
}
|
822
|
+
|
823
|
+
#Global on_entry should be called before choose_action_on_entry
|
824
|
+
expect(dump["on_entry_call_order"]).to eq([
|
825
|
+
"global_on_entry",
|
826
|
+
"index_on_entry"
|
827
|
+
])
|
828
|
+
|
829
|
+
#Expect not to get an event from the choose_action
|
830
|
+
@driver.ignore_up_to "if_event"
|
831
|
+
@driver.mexpect("if_event", [Integer, "action", {"from" => nil, "to" => "index"}])
|
832
|
+
end
|
833
|
+
|
834
|
+
it "Does support using a synchronous request in choose_action" do
|
835
|
+
ctx = flok_new_user File.read('./spec/kern/assets/choose_action_sync.rb'), File.read("./spec/kern/assets/test_service/config0.rb")
|
836
|
+
dump = ctx.evald %{
|
837
|
+
base = _embed("my_controller", 0, {}, null);
|
838
|
+
|
839
|
+
//Drain queue
|
840
|
+
int_dispatch([]);
|
841
|
+
}
|
842
|
+
|
843
|
+
#Expect not to get an event from the choose_action
|
844
|
+
@driver.ignore_up_to "if_event"
|
845
|
+
@driver.mexpect("if_event", [Integer, "action", {"from" => nil, "to" => "index"}])
|
846
|
+
end
|
847
|
+
|
848
|
+
it "Not setting a Goto will result in an exception" do
|
849
|
+
ctx = flok_new_user File.read('./spec/kern/assets/choose_action_sync_no_goto.rb'), File.read("./spec/kern/assets/test_service/config0.rb")
|
850
|
+
expect {
|
851
|
+
ctx.evald %{
|
852
|
+
base = _embed("my_controller", 0, {}, null);
|
853
|
+
|
854
|
+
//Drain queue
|
855
|
+
int_dispatch([]);
|
856
|
+
}
|
857
|
+
}.to raise_exception
|
858
|
+
end
|
859
|
+
|
860
|
+
it "Calling an asynchronous request for the Goto in choose_action will result in an exception" do
|
861
|
+
ctx = flok_new_user File.read('./spec/kern/assets/choose_action_async.rb'), File.read("./spec/kern/assets/test_service/config0.rb")
|
862
|
+
expect {
|
863
|
+
ctx.evald %{
|
864
|
+
base = _embed("my_controller", 0, {}, null);
|
865
|
+
|
866
|
+
//Drain queue
|
867
|
+
int_dispatch([]);
|
868
|
+
}
|
869
|
+
}.to raise_error(/choose_action.*Goto/)
|
870
|
+
end
|
770
871
|
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
#The test service
|
2
|
+
|
3
|
+
Dir.chdir File.join File.dirname(__FILE__), '../../'
|
4
|
+
require './spec/env/kern.rb'
|
5
|
+
require './spec/lib/helpers.rb'
|
6
|
+
require './spec/lib/io_extensions.rb'
|
7
|
+
require './spec/lib/rspec_extensions.rb'
|
8
|
+
require 'zlib'
|
9
|
+
|
10
|
+
RSpec.describe "kern:test_service" do
|
11
|
+
include Zlib
|
12
|
+
include_context "kern"
|
13
|
+
|
14
|
+
it "Can use test service" do
|
15
|
+
ctx = flok_new_user File.read('./spec/kern/assets/test_service/controller0.rb'), File.read("./spec/kern/assets/test_service/config0.rb")
|
16
|
+
dump = ctx.evald %{
|
17
|
+
base = _embed("my_controller", 0, {}, null);
|
18
|
+
|
19
|
+
//Drain queue
|
20
|
+
int_dispatch([]);
|
21
|
+
|
22
|
+
dump.my_action_entered = my_action_entered;
|
23
|
+
}
|
24
|
+
|
25
|
+
expect(dump["my_action_entered"]).to eq(true)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "Can use test service to make a test_sync request" do
|
29
|
+
ctx = flok_new_user File.read('./spec/kern/assets/test_service/controller1.rb'), File.read("./spec/kern/assets/test_service/config0.rb")
|
30
|
+
dump = ctx.evald %{
|
31
|
+
base = _embed("my_controller", 0, {}, null);
|
32
|
+
|
33
|
+
//Drain queue
|
34
|
+
int_dispatch([]);
|
35
|
+
|
36
|
+
dump.test_sync_res_params = test_sync_res_params;
|
37
|
+
}
|
38
|
+
|
39
|
+
expect(dump["test_sync_res_params"]).to eq({
|
40
|
+
"foo" => "bar"
|
41
|
+
})
|
42
|
+
end
|
43
|
+
|
44
|
+
it "Can use test service to make a test_sync request and should still succeed if int_dispatch isnt called" do
|
45
|
+
ctx = flok_new_user File.read('./spec/kern/assets/test_service/controller1.rb'), File.read("./spec/kern/assets/test_service/config0.rb")
|
46
|
+
dump = ctx.evald %{
|
47
|
+
base = _embed("my_controller", 0, {}, null);
|
48
|
+
dump.test_sync_res_params = test_sync_res_params;
|
49
|
+
}
|
50
|
+
|
51
|
+
expect(dump["test_sync_res_params"]).to eq({
|
52
|
+
"foo" => "bar"
|
53
|
+
})
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
it "Can use test service to make a test_async request, and this request will fail unless int_dispatch is called (which triggers the async reply)" do
|
58
|
+
ctx = flok_new_user File.read('./spec/kern/assets/test_service/controller2.rb'), File.read("./spec/kern/assets/test_service/config0.rb")
|
59
|
+
expect {
|
60
|
+
ctx.evald %{
|
61
|
+
base = _embed("my_controller", 0, {}, null);
|
62
|
+
dump.test_async_res_params = test_async_res_params;
|
63
|
+
}
|
64
|
+
}.to raise_exception(V8::Error)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "Can use test service to make a test_async request, and should succeed after int_dispatch is called (dispatching the async reply)" do
|
68
|
+
ctx = flok_new_user File.read('./spec/kern/assets/test_service/controller2.rb'), File.read("./spec/kern/assets/test_service/config0.rb")
|
69
|
+
dump = ctx.evald %{
|
70
|
+
base = _embed("my_controller", 0, {}, null);
|
71
|
+
|
72
|
+
//Drain queue
|
73
|
+
int_dispatch([]);
|
74
|
+
|
75
|
+
dump.test_async_res_params = test_async_res_params;
|
76
|
+
}
|
77
|
+
|
78
|
+
expect(dump["test_async_res_params"]).to eq({
|
79
|
+
"foo" => "bar"
|
80
|
+
})
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
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.
|
4
|
+
version: 0.0.57
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- seo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: execjs
|
@@ -344,6 +344,7 @@ files:
|
|
344
344
|
- docs/rakefile.md
|
345
345
|
- docs/services.md
|
346
346
|
- docs/services/rest.md
|
347
|
+
- docs/services/test.md
|
347
348
|
- docs/services/vm.md
|
348
349
|
- docs/services/vm/diff.md
|
349
350
|
- docs/services/vm/pagers.md
|
@@ -1128,6 +1129,10 @@ files:
|
|
1128
1129
|
- spec/iface/kern/ping_spec.rb
|
1129
1130
|
- spec/iface/kern/pipe_spec.rb
|
1130
1131
|
- spec/kern/assets/blank.rb
|
1132
|
+
- spec/kern/assets/choose_action.rb
|
1133
|
+
- spec/kern/assets/choose_action_async.rb
|
1134
|
+
- spec/kern/assets/choose_action_sync.rb
|
1135
|
+
- spec/kern/assets/choose_action_sync_no_goto.rb
|
1131
1136
|
- spec/kern/assets/controller0.rb
|
1132
1137
|
- spec/kern/assets/controller0defer.rb
|
1133
1138
|
- spec/kern/assets/controller0defer0.rb
|
@@ -1153,10 +1158,12 @@ files:
|
|
1153
1158
|
- spec/kern/assets/interval2.rb
|
1154
1159
|
- spec/kern/assets/interval3.rb
|
1155
1160
|
- spec/kern/assets/lower_event.rb
|
1161
|
+
- spec/kern/assets/no_choose_action.rb
|
1156
1162
|
- spec/kern/assets/raise_event.rb
|
1157
1163
|
- spec/kern/assets/rest_service/config0.rb
|
1158
1164
|
- spec/kern/assets/rest_service/controller0.rb
|
1159
1165
|
- spec/kern/assets/rest_service/controller1.rb
|
1166
|
+
- spec/kern/assets/rest_service/controller2.rb
|
1160
1167
|
- spec/kern/assets/send_event.rb
|
1161
1168
|
- spec/kern/assets/service0.rb
|
1162
1169
|
- spec/kern/assets/service1.rb
|
@@ -1171,6 +1178,11 @@ files:
|
|
1171
1178
|
- spec/kern/assets/test_event.rb
|
1172
1179
|
- spec/kern/assets/test_event2.rb
|
1173
1180
|
- spec/kern/assets/test_event3.rb
|
1181
|
+
- spec/kern/assets/test_service/config0.rb
|
1182
|
+
- spec/kern/assets/test_service/controller0.rb
|
1183
|
+
- spec/kern/assets/test_service/controller1.rb
|
1184
|
+
- spec/kern/assets/test_service/controller2.rb
|
1185
|
+
- spec/kern/assets/test_service_config.rb
|
1174
1186
|
- spec/kern/assets/vm/config0.rb
|
1175
1187
|
- spec/kern/assets/vm/config1.rb
|
1176
1188
|
- spec/kern/assets/vm/config2.rb
|
@@ -1250,6 +1262,7 @@ files:
|
|
1250
1262
|
- spec/kern/functions_spec.rb
|
1251
1263
|
- spec/kern/rest_service_spec.rb
|
1252
1264
|
- spec/kern/service_controller_spec.rb
|
1265
|
+
- spec/kern/test_service_spec.rb
|
1253
1266
|
- spec/kern/vm_service_functional_spec.rb
|
1254
1267
|
- spec/kern/vm_service_mem_pagers_spec.rb
|
1255
1268
|
- spec/kern/vm_service_net_sim_pager_spec.rb
|
@@ -2039,6 +2052,10 @@ test_files:
|
|
2039
2052
|
- spec/iface/kern/ping_spec.rb
|
2040
2053
|
- spec/iface/kern/pipe_spec.rb
|
2041
2054
|
- spec/kern/assets/blank.rb
|
2055
|
+
- spec/kern/assets/choose_action.rb
|
2056
|
+
- spec/kern/assets/choose_action_async.rb
|
2057
|
+
- spec/kern/assets/choose_action_sync.rb
|
2058
|
+
- spec/kern/assets/choose_action_sync_no_goto.rb
|
2042
2059
|
- spec/kern/assets/controller0.rb
|
2043
2060
|
- spec/kern/assets/controller0defer.rb
|
2044
2061
|
- spec/kern/assets/controller0defer0.rb
|
@@ -2064,10 +2081,12 @@ test_files:
|
|
2064
2081
|
- spec/kern/assets/interval2.rb
|
2065
2082
|
- spec/kern/assets/interval3.rb
|
2066
2083
|
- spec/kern/assets/lower_event.rb
|
2084
|
+
- spec/kern/assets/no_choose_action.rb
|
2067
2085
|
- spec/kern/assets/raise_event.rb
|
2068
2086
|
- spec/kern/assets/rest_service/config0.rb
|
2069
2087
|
- spec/kern/assets/rest_service/controller0.rb
|
2070
2088
|
- spec/kern/assets/rest_service/controller1.rb
|
2089
|
+
- spec/kern/assets/rest_service/controller2.rb
|
2071
2090
|
- spec/kern/assets/send_event.rb
|
2072
2091
|
- spec/kern/assets/service0.rb
|
2073
2092
|
- spec/kern/assets/service1.rb
|
@@ -2082,6 +2101,11 @@ test_files:
|
|
2082
2101
|
- spec/kern/assets/test_event.rb
|
2083
2102
|
- spec/kern/assets/test_event2.rb
|
2084
2103
|
- spec/kern/assets/test_event3.rb
|
2104
|
+
- spec/kern/assets/test_service/config0.rb
|
2105
|
+
- spec/kern/assets/test_service/controller0.rb
|
2106
|
+
- spec/kern/assets/test_service/controller1.rb
|
2107
|
+
- spec/kern/assets/test_service/controller2.rb
|
2108
|
+
- spec/kern/assets/test_service_config.rb
|
2085
2109
|
- spec/kern/assets/vm/config0.rb
|
2086
2110
|
- spec/kern/assets/vm/config1.rb
|
2087
2111
|
- spec/kern/assets/vm/config2.rb
|
@@ -2161,6 +2185,7 @@ test_files:
|
|
2161
2185
|
- spec/kern/functions_spec.rb
|
2162
2186
|
- spec/kern/rest_service_spec.rb
|
2163
2187
|
- spec/kern/service_controller_spec.rb
|
2188
|
+
- spec/kern/test_service_spec.rb
|
2164
2189
|
- spec/kern/vm_service_functional_spec.rb
|
2165
2190
|
- spec/kern/vm_service_mem_pagers_spec.rb
|
2166
2191
|
- spec/kern/vm_service_net_sim_pager_spec.rb
|