flok 0.0.56 → 0.0.57
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/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
|