pione 0.4.0 → 0.4.1

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 (60) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +1 -0
  3. data/History.txt +7 -0
  4. data/example/DeferredChoice/DeferredChoice.pione +14 -7
  5. data/{misc → example/DeferredChoice/bin}/ui.xml +11 -6
  6. data/example/DeferredChoice/pione-package.json +1 -1
  7. data/example/DeferredChoiceWithPage/DeferredChoiceWithPage.pione +47 -0
  8. data/example/DeferredChoiceWithPage/etc/index.html +22 -0
  9. data/example/DeferredChoiceWithPage/pione-package.json +18 -0
  10. data/example/Interaction/Interaction.pione +27 -0
  11. data/example/Interaction/bin/show-environment.cgi +45 -0
  12. data/example/Interaction/etc/.hidden-file.txt +1 -0
  13. data/example/Interaction/etc/cgi.html +46 -0
  14. data/example/Interaction/etc/create-files.html +51 -0
  15. data/example/Interaction/etc/delete-files.html +31 -0
  16. data/example/Interaction/etc/get-files.html +21 -0
  17. data/example/Interaction/etc/index.html +18 -0
  18. data/example/Interaction/etc/list-files.html +36 -0
  19. data/example/Interaction/pione-package.json +24 -0
  20. data/lib/pione/agent/job-manager.rb +19 -3
  21. data/lib/pione/agent/logger.rb +9 -9
  22. data/lib/pione/agent/messenger.rb +3 -2
  23. data/lib/pione/agent/task-worker.rb +32 -10
  24. data/lib/pione/command/option.rb +18 -0
  25. data/lib/pione/command/pione-client.rb +51 -22
  26. data/lib/pione/command/pione-interactive.rb +128 -55
  27. data/lib/pione/command/pione-package-build.rb +3 -3
  28. data/lib/pione/command/pione-task-worker.rb +23 -10
  29. data/lib/pione/command/pione-tuple-space-provider.rb +8 -8
  30. data/lib/pione/command/spawner.rb +28 -1
  31. data/lib/pione/front/interactive-front.rb +76 -0
  32. data/lib/pione/global/interactive-variable.rb +26 -0
  33. data/lib/pione/log/message-log-receiver.rb +4 -2
  34. data/lib/pione/model/task-worker-broker-model.rb +7 -1
  35. data/lib/pione/package/package-archiver.rb +16 -9
  36. data/lib/pione/package/package-handler.rb +6 -0
  37. data/lib/pione/package/package-info.rb +4 -0
  38. data/lib/pione/package/package-reader.rb +2 -4
  39. data/lib/pione/package/package-scanner.rb +23 -3
  40. data/lib/pione/rule-engine.rb +48 -19
  41. data/lib/pione/rule-engine/action-handler.rb +29 -5
  42. data/lib/pione/rule-engine/basic-handler.rb +27 -19
  43. data/lib/pione/test-helper/command-helper.rb +1 -1
  44. data/lib/pione/tuple-space/tuple-definition.yml +2 -3
  45. data/lib/pione/tuple-space/tuple-space-server.rb +8 -0
  46. data/lib/pione/util/cgi.rb +326 -0
  47. data/lib/pione/version.rb +1 -1
  48. data/lib/rootage/normalizer.rb +4 -0
  49. data/lib/rootage/option.rb +11 -4
  50. data/test/agent/spec_logger.rb +0 -1
  51. data/test/agent/spec_messenger.rb +1 -1
  52. data/test/command/spec_pione-client.rb +4 -4
  53. data/test/log/spec_message-log.rb +1 -1
  54. data/test/rule-engine/spec_action-handler.rb +25 -5
  55. data/test/rule-engine/spec_empty-handler.rb +36 -3
  56. data/test/rule-engine/spec_flow-handler.rb +90 -7
  57. metadata +22 -72
  58. data/misc/test-drb-stop-service.rb +0 -34
  59. data/misc/test-many-waiters-client.rb +0 -56
  60. data/misc/test-many-waiters-server.rb +0 -14
@@ -1,4 +1,4 @@
1
1
  module Pione
2
2
  # version of pione
3
- VERSION = "0.4.0"
3
+ VERSION = "0.4.1"
4
4
  end
@@ -23,6 +23,10 @@ module Rootage
23
23
  # @return [Object]
24
24
  # the normalized value
25
25
  def normalize(type, val)
26
+ if type.nil?
27
+ raise ArgumentError.new("Normalization type should not be nil.")
28
+ end
29
+
26
30
  if respond_to?(type, true)
27
31
  send(type, val)
28
32
  else
@@ -47,8 +47,13 @@ module Rootage
47
47
  # command object
48
48
  # @return [void]
49
49
  def setup(opt, cmd)
50
+ if not(arg.nil?) and type.nil?
51
+ raise OptionError.new(cmd, "Option type is undefined for the option " + inspect)
52
+ end
53
+
50
54
  # build OptionParser#on arguments
51
55
  args = [short_for_optparse, long_for_optparse, desc].compact
56
+
52
57
  # call #on with the argument
53
58
  opt.on(*args) {|val| specify(cmd, val)}
54
59
  end
@@ -79,13 +84,15 @@ module Rootage
79
84
  end
80
85
 
81
86
  # normalization
82
- _val = Normalizer.normalize(type, val)
87
+ if val
88
+ val = Normalizer.normalize(type, val)
89
+ end
83
90
 
84
- if range.nil? or range.include?(_val)
91
+ if range.nil? or range.include?(val)
85
92
  if processes.empty?
86
- cmd.model.specify(key, _val)
93
+ cmd.model.specify(key, val)
87
94
  else
88
- execute(cmd, _val)
95
+ execute(cmd, val)
89
96
  end
90
97
  else
91
98
  arg = {value: _val, range: range}
@@ -27,7 +27,6 @@ describe "Pione::Agent::Logger" do
27
27
 
28
28
  it "should get locations" do
29
29
  @logger.log_location.should == @location
30
- @logger.output_location.should == @location
31
30
  end
32
31
 
33
32
  it "should log messages" do
@@ -5,7 +5,7 @@ describe Pione::Agent::Messenger do
5
5
  @io = StringIO.new("", "w+")
6
6
  tuple_space = TestHelper::TupleSpace.create(self)
7
7
  receiver = Log::CUIMessageLogReceiver.new(@io)
8
- @messenger = Agent::Messenger.new(tuple_space, receiver)
8
+ @messenger = Agent::Messenger.new(tuple_space, receiver, "fake session id")
9
9
  end
10
10
 
11
11
  after do
@@ -13,7 +13,7 @@ TestHelper.scope do |this|
13
13
 
14
14
  it "should execute a PIONE document" do
15
15
  path = Temppath.create
16
- cmd = @cmd.new(["example/HelloWorld/HelloWorld.pione", "-o", path.to_s])
16
+ cmd = @cmd.new(["example/HelloWorld/HelloWorld.pione", "--base", path.to_s])
17
17
  res = Rootage::ScenarioTest.succeed(cmd)
18
18
  Location[path + "message.txt"].should.exist
19
19
  Location[path + "message.txt"].read.should.start_with "Hello, world!"
@@ -21,7 +21,7 @@ TestHelper.scope do |this|
21
21
 
22
22
  it "should execute a PIONE document with stand alone mode" do
23
23
  path = Temppath.create
24
- cmd = @cmd.new(["example/HelloWorld/HelloWorld.pione", "-o", path.to_s, "--stand-alone"])
24
+ cmd = @cmd.new(["example/HelloWorld/HelloWorld.pione", "--base", path.to_s, "--stand-alone"])
25
25
  Rootage::ScenarioTest.succeed(cmd)
26
26
  Location[path + "message.txt"].should.exist
27
27
  Location[path + "message.txt"].read.should.start_with "Hello, world!"
@@ -37,7 +37,7 @@ TestHelper.scope do |this|
37
37
 
38
38
  it "should execute a PIONE package with stand alone mode" do
39
39
  path = Temppath.create
40
- cmd = @cmd.new(["example/HelloWorld/", "-o", path.to_s, "--stand-alone"])
40
+ cmd = @cmd.new(["example/HelloWorld/", "--base", path.to_s, "--stand-alone"])
41
41
  Rootage::ScenarioTest.succeed(cmd)
42
42
  Location[path + "message.txt"].should.exist
43
43
  Location[path + "message.txt"].read.should.start_with "Hello, world!"
@@ -46,7 +46,7 @@ TestHelper.scope do |this|
46
46
  it "should fail with action error" do
47
47
  doc = (this::DIR + "ActionError.pione").path.to_s
48
48
  path = Temppath.create
49
- cmd = @cmd.new([doc, "-o", path.to_s, "--stand-alone"])
49
+ cmd = @cmd.new([doc, "--base", path.to_s, "--stand-alone"])
50
50
  Rootage::ScenarioTest.fail(cmd)
51
51
  end
52
52
 
@@ -16,7 +16,7 @@ TestHelper.scope do |this|
16
16
  tuple_space_server = TestHelper::TupleSpace.create(self)
17
17
  receiver = Log::CUIMessageLogReceiver.new(@io)
18
18
  @ts = tuple_space_server
19
- @messenger = Agent::Messenger.new(tuple_space_server, receiver)
19
+ @messenger = Agent::Messenger.new(tuple_space_server, receiver, "fake session id")
20
20
  @sender = TestSender.new(@ts)
21
21
  end
22
22
 
@@ -40,9 +40,19 @@ TestHelper.scope do |this|
40
40
  tuple_b.domain = domain_id
41
41
  inputs.each {|t| write(t) }
42
42
 
43
- @handler_sh1 = RuleEngine.make(@ts, env, package_id, 'Shell1', inputs, param_set, domain_id, 'root')
44
- @handler_sh2 = RuleEngine.make(@ts, env, package_id, 'Shell2', inputs, param_set, domain_id, 'root')
45
- @handler_ruby = RuleEngine.make(@ts, env, package_id, 'Ruby', inputs, param_set, domain_id, 'root')
43
+ engine_param = {
44
+ :tuple_space => @ts,
45
+ :env => env,
46
+ :package_id => package_id,
47
+ :inputs => inputs,
48
+ :param_set => param_set,
49
+ :domain_id => domain_id,
50
+ :caller_id => 'root'
51
+ }
52
+
53
+ @handler_sh1 = RuleEngine.make(engine_param.merge(rule_name: 'Shell1'))
54
+ @handler_sh2 = RuleEngine.make(engine_param.merge(rule_name: 'Shell2'))
55
+ @handler_ruby = RuleEngine.make(engine_param.merge(rule_name: 'Ruby'))
46
56
  end
47
57
 
48
58
  after do
@@ -130,8 +140,18 @@ TestHelper.scope do |this|
130
140
  tuple_a.domain = domain_id
131
141
  inputs.each {|t| write(t) }
132
142
 
133
- @handler1 = RuleEngine.make(@ts, env, package_id, 'R1', inputs, param_set, domain_id, 'root')
134
- @handler2 = RuleEngine.make(@ts, env, package_id, 'R2', inputs, param_set, domain_id, 'root')
143
+ engine_param = {
144
+ :tuple_space => @ts,
145
+ :env => env,
146
+ :package_id => package_id,
147
+ :inputs => inputs,
148
+ :param_set => param_set,
149
+ :domain_id => domain_id,
150
+ :caller_id => 'root'
151
+ }
152
+
153
+ @handler1 = RuleEngine.make(engine_param.merge(rule_name: 'R1'))
154
+ @handler2 = RuleEngine.make(engine_param.merge(rule_name: 'R2'))
135
155
  end
136
156
 
137
157
  after do
@@ -43,7 +43,18 @@ describe 'Pione::RuleHandler::EmptyHandler' do
43
43
 
44
44
  write(@tuple_a)
45
45
 
46
- @handler = RuleEngine.make(@space, env, package_id, 'TestTouch', @inputs, param_set, domain_id, 'root')
46
+ engine_param = {
47
+ :tuple_space => @space,
48
+ :env => env,
49
+ :package_id => package_id,
50
+ :rule_name => 'TestTouch',
51
+ :inputs => @inputs,
52
+ :param_set => param_set,
53
+ :domain_id => domain_id,
54
+ :caller_id => 'root'
55
+ }
56
+
57
+ @handler = RuleEngine.make(engine_param)
47
58
  end
48
59
 
49
60
  after do
@@ -96,7 +107,18 @@ describe 'Pione::RuleHandler::EmptyHandler' do
96
107
  write(@tuple_a)
97
108
  write(@tuple_b)
98
109
 
99
- @handler = RuleEngine.make(@space, env, package_id, 'TestTouch', @inputs, param_set, domain_id, 'root')
110
+ engine_param = {
111
+ :tuple_space => @space,
112
+ :env => env,
113
+ :package_id => package_id,
114
+ :rule_name => 'TestTouch',
115
+ :inputs => @inputs,
116
+ :param_set => param_set,
117
+ :domain_id => domain_id,
118
+ :caller_id => 'root'
119
+ }
120
+
121
+ @handler = RuleEngine.make(engine_param)
100
122
  end
101
123
 
102
124
  after do
@@ -148,7 +170,18 @@ describe 'Pione::RuleHandler::EmptyHandler' do
148
170
  write(@tuple_a)
149
171
  write(@tuple_b)
150
172
 
151
- @handler = RuleEngine.make(@space, env, package_id, 'TestRemove', @inputs, param_set, domain_id, 'root')
173
+ engine_param = {
174
+ :tuple_space => @space,
175
+ :env => env,
176
+ :package_id => package_id,
177
+ :rule_name => 'TestRemove',
178
+ :inputs => @inputs,
179
+ :param_set => param_set,
180
+ :domain_id => domain_id,
181
+ :caller_id => 'root'
182
+ }
183
+
184
+ @handler = RuleEngine.make(engine_param)
152
185
  end
153
186
 
154
187
  after do
@@ -30,7 +30,18 @@ describe 'Pione::RuleHandler::FlowRule' do
30
30
  tuple_b.domain = domain_id
31
31
  inputs.each {|t| write(t) }
32
32
 
33
- @handler = RuleEngine.make(@ts, env, @package_id, @rule_name, inputs, param_set, domain_id, 'root')
33
+ engine_param = {
34
+ :tuple_space => @ts,
35
+ :env => env,
36
+ :package_id => @package_id,
37
+ :rule_name => @rule_name,
38
+ :inputs => inputs,
39
+ :param_set => param_set,
40
+ :domain_id => domain_id,
41
+ :caller_id => 'root'
42
+ }
43
+
44
+ @handler = RuleEngine.make(engine_param)
34
45
  end
35
46
 
36
47
  after do
@@ -103,7 +114,19 @@ describe 'Pione::RuleHandler::FlowRule' do
103
114
  it "should unify redundant tasks" do
104
115
  param_set = Lang::ParameterSet.new
105
116
  domain_id = Util::DomainID.generate('Unification', 'R1', [], param_set)
106
- handler = RuleEngine.make(@space, @env, 'Unification', 'R1', [], param_set, domain_id, 'root')
117
+
118
+ engine_param = {
119
+ :tuple_space => @space,
120
+ :env => @env,
121
+ :package_id => 'Unification',
122
+ :rule_name => 'R1',
123
+ :inputs => [],
124
+ :param_set => param_set,
125
+ :domain_id => domain_id,
126
+ :caller_id => 'root'
127
+ }
128
+
129
+ handler = RuleEngine.make(engine_param)
107
130
 
108
131
  # start the handler
109
132
  thread = Thread.new { Thread.current[:outputs] = handler.execute }
@@ -170,7 +193,19 @@ describe 'Pione::RuleHandler::FlowRule' do
170
193
  it "should execute a flow" do
171
194
  param_set = Lang::ParameterSet.new(table: {"F" => Lang::BooleanSequence.of("true")})
172
195
  domain_id = Util::DomainID.generate(@env.current_package_id, 'Main', [], param_set)
173
- handler = RuleEngine.make(@space, @env, @env.current_package_id, 'Main', [], param_set, domain_id, 'root')
196
+
197
+ engine_param = {
198
+ :tuple_space => @space,
199
+ :env => @env,
200
+ :package_id => @env.current_package_id,
201
+ :rule_name => 'Main',
202
+ :inputs => [],
203
+ :param_set => param_set,
204
+ :domain_id => domain_id,
205
+ :caller_id => 'root'
206
+ }
207
+
208
+ handler = RuleEngine.make(engine_param)
174
209
 
175
210
  # start the handler
176
211
  thread = Thread.new { Thread.current[:outputs] = handler.execute }
@@ -232,7 +267,19 @@ describe 'Pione::RuleHandler::FlowRule' do
232
267
  it "should override parent rule by child" do
233
268
  param_set = Lang::ParameterSet.new
234
269
  domain_id = Util::DomainID.generate('Child', 'R1', [], param_set)
235
- handler = RuleEngine.make(@space, @env, 'Child', 'R1', [], param_set, domain_id, 'root')
270
+
271
+ engine_param = {
272
+ :tuple_space => @space,
273
+ :env => @env,
274
+ :package_id => 'Child',
275
+ :rule_name => 'R1',
276
+ :inputs => [],
277
+ :param_set => param_set,
278
+ :domain_id => domain_id,
279
+ :caller_id => 'root'
280
+ }
281
+
282
+ handler = RuleEngine.make(engine_param)
236
283
 
237
284
  # start the handler
238
285
  thread = Thread.new { Thread.current[:outputs] = handler.execute }
@@ -289,7 +336,19 @@ describe 'Pione::RuleHandler::FlowRule' do
289
336
  it "should get concrete rule" do
290
337
  param_set = Lang::ParameterSet.new
291
338
  domain_id = Util::DomainID.generate('Concrete', 'R1', [], param_set)
292
- handler = RuleEngine.make(@space, @env, 'Concrete', 'R1', [], param_set, domain_id, 'root')
339
+
340
+ engine_param = {
341
+ :tuple_space => @space,
342
+ :env => @env,
343
+ :package_id => 'Concrete',
344
+ :rule_name => 'R1',
345
+ :inputs => [],
346
+ :param_set => param_set,
347
+ :domain_id => domain_id,
348
+ :caller_id => 'root'
349
+ }
350
+
351
+ handler = RuleEngine.make(engine_param)
293
352
 
294
353
  # start the handler
295
354
  thread = Thread.new { Thread.current[:outputs] = handler.execute }
@@ -340,7 +399,19 @@ describe 'Pione::RuleHandler::FlowRule' do
340
399
  it "should distribute tasks by parameter" do
341
400
  param_set = Lang::ParameterSet.new
342
401
  domain_id = Util::DomainID.generate(@env.current_package_id, 'R1', [], param_set)
343
- handler = RuleEngine.make(@space, @env, @env.current_package_id, 'R1', [], param_set, domain_id, 'root')
402
+
403
+ engine_param = {
404
+ :tuple_space => @space,
405
+ :env => @env,
406
+ :package_id => @env.current_package_id,
407
+ :rule_name => 'R1',
408
+ :inputs => [],
409
+ :param_set => param_set,
410
+ :domain_id => domain_id,
411
+ :caller_id => 'root'
412
+ }
413
+
414
+ handler = RuleEngine.make(engine_param)
344
415
 
345
416
  # start the handler
346
417
  thread = Thread.new { Thread.current[:outputs] = handler.execute }
@@ -395,7 +466,19 @@ describe 'Pione::RuleHandler::FlowRule' do
395
466
  it "should make recursion by using parameter" do
396
467
  param_set = Lang::ParameterSet.new
397
468
  domain_id = Util::DomainID.generate(@env.current_package_id, 'R1', [], param_set)
398
- handler = RuleEngine.make(@space, @env, @env.current_package_id, 'R1', [], param_set, domain_id, 'root')
469
+
470
+ engine_param = {
471
+ :tuple_space => @space,
472
+ :env => @env,
473
+ :package_id => @env.current_package_id,
474
+ :rule_name => 'R1',
475
+ :inputs => [],
476
+ :param_set => param_set,
477
+ :domain_id => domain_id,
478
+ :caller_id => 'root'
479
+ }
480
+
481
+ handler = RuleEngine.make(engine_param)
399
482
 
400
483
  # start the handler
401
484
  thread = Thread.new { Thread.current[:outputs] = handler.execute }
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pione
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
5
- prerelease:
4
+ version: 0.4.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Keita Yamaguchi
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-04-16 00:00:00.000000000 Z
11
+ date: 2014-08-10 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: parslet
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: uuidtools
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: highline
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: hamster
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: naming
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: forwardablex
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: temppath
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ~>
124
109
  - !ruby/object:Gem::Version
@@ -126,7 +111,6 @@ dependencies:
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: ruby-xes
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ~>
132
116
  - !ruby/object:Gem::Version
@@ -134,7 +118,6 @@ dependencies:
134
118
  type: :runtime
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - ~>
140
123
  - !ruby/object:Gem::Version
@@ -142,7 +125,6 @@ dependencies:
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: sys-uname
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
129
  - - ~>
148
130
  - !ruby/object:Gem::Version
@@ -150,7 +132,6 @@ dependencies:
150
132
  type: :runtime
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
136
  - - ~>
156
137
  - !ruby/object:Gem::Version
@@ -158,7 +139,6 @@ dependencies:
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: simple-identity
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
143
  - - ~>
164
144
  - !ruby/object:Gem::Version
@@ -166,7 +146,6 @@ dependencies:
166
146
  type: :runtime
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
150
  - - ~>
172
151
  - !ruby/object:Gem::Version
@@ -174,7 +153,6 @@ dependencies:
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: rainbow
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
157
  - - ~>
180
158
  - !ruby/object:Gem::Version
@@ -182,7 +160,6 @@ dependencies:
182
160
  type: :runtime
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
164
  - - ~>
188
165
  - !ruby/object:Gem::Version
@@ -190,7 +167,6 @@ dependencies:
190
167
  - !ruby/object:Gem::Dependency
191
168
  name: sys-cpu
192
169
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
170
  requirements:
195
171
  - - ~>
196
172
  - !ruby/object:Gem::Version
@@ -198,7 +174,6 @@ dependencies:
198
174
  type: :runtime
199
175
  prerelease: false
200
176
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
177
  requirements:
203
178
  - - ~>
204
179
  - !ruby/object:Gem::Version
@@ -206,7 +181,6 @@ dependencies:
206
181
  - !ruby/object:Gem::Dependency
207
182
  name: structx
208
183
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
184
  requirements:
211
185
  - - ~>
212
186
  - !ruby/object:Gem::Version
@@ -214,7 +188,6 @@ dependencies:
214
188
  type: :runtime
215
189
  prerelease: false
216
190
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
191
  requirements:
219
192
  - - ~>
220
193
  - !ruby/object:Gem::Version
@@ -222,7 +195,6 @@ dependencies:
222
195
  - !ruby/object:Gem::Dependency
223
196
  name: syslog-logger
224
197
  requirement: !ruby/object:Gem::Requirement
225
- none: false
226
198
  requirements:
227
199
  - - ~>
228
200
  - !ruby/object:Gem::Version
@@ -230,7 +202,6 @@ dependencies:
230
202
  type: :runtime
231
203
  prerelease: false
232
204
  version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
205
  requirements:
235
206
  - - ~>
236
207
  - !ruby/object:Gem::Version
@@ -238,7 +209,6 @@ dependencies:
238
209
  - !ruby/object:Gem::Dependency
239
210
  name: retriable
240
211
  requirement: !ruby/object:Gem::Requirement
241
- none: false
242
212
  requirements:
243
213
  - - ~>
244
214
  - !ruby/object:Gem::Version
@@ -246,7 +216,6 @@ dependencies:
246
216
  type: :runtime
247
217
  prerelease: false
248
218
  version_requirements: !ruby/object:Gem::Requirement
249
- none: false
250
219
  requirements:
251
220
  - - ~>
252
221
  - !ruby/object:Gem::Version
@@ -254,7 +223,6 @@ dependencies:
254
223
  - !ruby/object:Gem::Dependency
255
224
  name: childprocess
256
225
  requirement: !ruby/object:Gem::Requirement
257
- none: false
258
226
  requirements:
259
227
  - - ~>
260
228
  - !ruby/object:Gem::Version
@@ -262,7 +230,6 @@ dependencies:
262
230
  type: :runtime
263
231
  prerelease: false
264
232
  version_requirements: !ruby/object:Gem::Requirement
265
- none: false
266
233
  requirements:
267
234
  - - ~>
268
235
  - !ruby/object:Gem::Version
@@ -270,7 +237,6 @@ dependencies:
270
237
  - !ruby/object:Gem::Dependency
271
238
  name: lettercase
272
239
  requirement: !ruby/object:Gem::Requirement
273
- none: false
274
240
  requirements:
275
241
  - - ~>
276
242
  - !ruby/object:Gem::Version
@@ -278,7 +244,6 @@ dependencies:
278
244
  type: :runtime
279
245
  prerelease: false
280
246
  version_requirements: !ruby/object:Gem::Requirement
281
- none: false
282
247
  requirements:
283
248
  - - ~>
284
249
  - !ruby/object:Gem::Version
@@ -286,7 +251,6 @@ dependencies:
286
251
  - !ruby/object:Gem::Dependency
287
252
  name: rubyzip
288
253
  requirement: !ruby/object:Gem::Requirement
289
- none: false
290
254
  requirements:
291
255
  - - ~>
292
256
  - !ruby/object:Gem::Version
@@ -294,7 +258,6 @@ dependencies:
294
258
  type: :runtime
295
259
  prerelease: false
296
260
  version_requirements: !ruby/object:Gem::Requirement
297
- none: false
298
261
  requirements:
299
262
  - - ~>
300
263
  - !ruby/object:Gem::Version
@@ -302,7 +265,6 @@ dependencies:
302
265
  - !ruby/object:Gem::Dependency
303
266
  name: kramdown
304
267
  requirement: !ruby/object:Gem::Requirement
305
- none: false
306
268
  requirements:
307
269
  - - ~>
308
270
  - !ruby/object:Gem::Version
@@ -310,7 +272,6 @@ dependencies:
310
272
  type: :runtime
311
273
  prerelease: false
312
274
  version_requirements: !ruby/object:Gem::Requirement
313
- none: false
314
275
  requirements:
315
276
  - - ~>
316
277
  - !ruby/object:Gem::Version
@@ -318,7 +279,6 @@ dependencies:
318
279
  - !ruby/object:Gem::Dependency
319
280
  name: os
320
281
  requirement: !ruby/object:Gem::Requirement
321
- none: false
322
282
  requirements:
323
283
  - - ~>
324
284
  - !ruby/object:Gem::Version
@@ -326,7 +286,6 @@ dependencies:
326
286
  type: :runtime
327
287
  prerelease: false
328
288
  version_requirements: !ruby/object:Gem::Requirement
329
- none: false
330
289
  requirements:
331
290
  - - ~>
332
291
  - !ruby/object:Gem::Version
@@ -334,7 +293,6 @@ dependencies:
334
293
  - !ruby/object:Gem::Dependency
335
294
  name: sys-proctable
336
295
  requirement: !ruby/object:Gem::Requirement
337
- none: false
338
296
  requirements:
339
297
  - - ~>
340
298
  - !ruby/object:Gem::Version
@@ -342,7 +300,6 @@ dependencies:
342
300
  type: :runtime
343
301
  prerelease: false
344
302
  version_requirements: !ruby/object:Gem::Requirement
345
- none: false
346
303
  requirements:
347
304
  - - ~>
348
305
  - !ruby/object:Gem::Version
@@ -350,7 +307,6 @@ dependencies:
350
307
  - !ruby/object:Gem::Dependency
351
308
  name: dropbox-sdk
352
309
  requirement: !ruby/object:Gem::Requirement
353
- none: false
354
310
  requirements:
355
311
  - - ~>
356
312
  - !ruby/object:Gem::Version
@@ -358,7 +314,6 @@ dependencies:
358
314
  type: :runtime
359
315
  prerelease: false
360
316
  version_requirements: !ruby/object:Gem::Requirement
361
- none: false
362
317
  requirements:
363
318
  - - ~>
364
319
  - !ruby/object:Gem::Version
@@ -366,7 +321,6 @@ dependencies:
366
321
  - !ruby/object:Gem::Dependency
367
322
  name: em-ftpd
368
323
  requirement: !ruby/object:Gem::Requirement
369
- none: false
370
324
  requirements:
371
325
  - - ~>
372
326
  - !ruby/object:Gem::Version
@@ -374,7 +328,6 @@ dependencies:
374
328
  type: :runtime
375
329
  prerelease: false
376
330
  version_requirements: !ruby/object:Gem::Requirement
377
- none: false
378
331
  requirements:
379
332
  - - ~>
380
333
  - !ruby/object:Gem::Version
@@ -382,7 +335,6 @@ dependencies:
382
335
  - !ruby/object:Gem::Dependency
383
336
  name: bacon
384
337
  requirement: !ruby/object:Gem::Requirement
385
- none: false
386
338
  requirements:
387
339
  - - ~>
388
340
  - !ruby/object:Gem::Version
@@ -390,7 +342,6 @@ dependencies:
390
342
  type: :development
391
343
  prerelease: false
392
344
  version_requirements: !ruby/object:Gem::Requirement
393
- none: false
394
345
  requirements:
395
346
  - - ~>
396
347
  - !ruby/object:Gem::Version
@@ -398,7 +349,6 @@ dependencies:
398
349
  - !ruby/object:Gem::Dependency
399
350
  name: rake
400
351
  requirement: !ruby/object:Gem::Requirement
401
- none: false
402
352
  requirements:
403
353
  - - ! '>='
404
354
  - !ruby/object:Gem::Version
@@ -406,7 +356,6 @@ dependencies:
406
356
  type: :development
407
357
  prerelease: false
408
358
  version_requirements: !ruby/object:Gem::Requirement
409
- none: false
410
359
  requirements:
411
360
  - - ! '>='
412
361
  - !ruby/object:Gem::Version
@@ -414,7 +363,6 @@ dependencies:
414
363
  - !ruby/object:Gem::Dependency
415
364
  name: bundler
416
365
  requirement: !ruby/object:Gem::Requirement
417
- none: false
418
366
  requirements:
419
367
  - - ! '>='
420
368
  - !ruby/object:Gem::Version
@@ -422,7 +370,6 @@ dependencies:
422
370
  type: :development
423
371
  prerelease: false
424
372
  version_requirements: !ruby/object:Gem::Requirement
425
- none: false
426
373
  requirements:
427
374
  - - ! '>='
428
375
  - !ruby/object:Gem::Version
@@ -430,7 +377,6 @@ dependencies:
430
377
  - !ruby/object:Gem::Dependency
431
378
  name: yard
432
379
  requirement: !ruby/object:Gem::Requirement
433
- none: false
434
380
  requirements:
435
381
  - - ! '>='
436
382
  - !ruby/object:Gem::Version
@@ -438,7 +384,6 @@ dependencies:
438
384
  type: :development
439
385
  prerelease: false
440
386
  version_requirements: !ruby/object:Gem::Requirement
441
- none: false
442
387
  requirements:
443
388
  - - ! '>='
444
389
  - !ruby/object:Gem::Version
@@ -446,7 +391,6 @@ dependencies:
446
391
  - !ruby/object:Gem::Dependency
447
392
  name: redcarpet
448
393
  requirement: !ruby/object:Gem::Requirement
449
- none: false
450
394
  requirements:
451
395
  - - ! '>='
452
396
  - !ruby/object:Gem::Version
@@ -454,7 +398,6 @@ dependencies:
454
398
  type: :development
455
399
  prerelease: false
456
400
  version_requirements: !ruby/object:Gem::Requirement
457
- none: false
458
401
  requirements:
459
402
  - - ! '>='
460
403
  - !ruby/object:Gem::Version
@@ -462,7 +405,6 @@ dependencies:
462
405
  - !ruby/object:Gem::Dependency
463
406
  name: ruby-prof
464
407
  requirement: !ruby/object:Gem::Requirement
465
- none: false
466
408
  requirements:
467
409
  - - ! '>='
468
410
  - !ruby/object:Gem::Version
@@ -470,7 +412,6 @@ dependencies:
470
412
  type: :development
471
413
  prerelease: false
472
414
  version_requirements: !ruby/object:Gem::Requirement
473
- none: false
474
415
  requirements:
475
416
  - - ! '>='
476
417
  - !ruby/object:Gem::Version
@@ -549,7 +490,11 @@ files:
549
490
  - example/CountChar/text/saikonihonno_josei.txt
550
491
  - example/CountChar/text/taishojugonenno_bundan.txt
551
492
  - example/DeferredChoice/DeferredChoice.pione
493
+ - example/DeferredChoice/bin/ui.xml
552
494
  - example/DeferredChoice/pione-package.json
495
+ - example/DeferredChoiceWithPage/DeferredChoiceWithPage.pione
496
+ - example/DeferredChoiceWithPage/etc/index.html
497
+ - example/DeferredChoiceWithPage/pione-package.json
553
498
  - example/FeatureExample/FeatureExample.pione
554
499
  - example/FeatureExample/pione-package.json
555
500
  - example/Fib/Fib.pione
@@ -558,6 +503,16 @@ files:
558
503
  - example/HelloWorld/scenario/Scenario.pione
559
504
  - example/HelloWorld/scenario/output/message.txt
560
505
  - example/HelloWorld/scenario/pione-scenario.json
506
+ - example/Interaction/Interaction.pione
507
+ - example/Interaction/bin/show-environment.cgi
508
+ - example/Interaction/etc/.hidden-file.txt
509
+ - example/Interaction/etc/cgi.html
510
+ - example/Interaction/etc/create-files.html
511
+ - example/Interaction/etc/delete-files.html
512
+ - example/Interaction/etc/get-files.html
513
+ - example/Interaction/etc/index.html
514
+ - example/Interaction/etc/list-files.html
515
+ - example/Interaction/pione-package.json
561
516
  - example/LoopByTouch/LoopByTouch.pione
562
517
  - example/LoopByTouch/PairLoop.pione
563
518
  - example/LoopByTouch/SingleLoop.pione
@@ -907,6 +862,7 @@ files:
907
862
  - lib/pione/front/client-front.rb
908
863
  - lib/pione/front/diagnosis-notification-front.rb
909
864
  - lib/pione/front/front-exception.rb
865
+ - lib/pione/front/interactive-front.rb
910
866
  - lib/pione/front/notification-listener-front.rb
911
867
  - lib/pione/front/notification-recipient-interface.rb
912
868
  - lib/pione/front/relay-front.rb
@@ -919,6 +875,7 @@ files:
919
875
  - lib/pione/global/diagnosis-variable.rb
920
876
  - lib/pione/global/global-exception.rb
921
877
  - lib/pione/global/input-generator-variable.rb
878
+ - lib/pione/global/interactive-variable.rb
922
879
  - lib/pione/global/item.rb
923
880
  - lib/pione/global/log-variable.rb
924
881
  - lib/pione/global/network-variable.rb
@@ -1102,6 +1059,7 @@ files:
1102
1059
  - lib/pione/util.rb
1103
1060
  - lib/pione/util/backslash-notation.rb
1104
1061
  - lib/pione/util/boolean-value.rb
1062
+ - lib/pione/util/cgi.rb
1105
1063
  - lib/pione/util/completion.rb
1106
1064
  - lib/pione/util/cpu.rb
1107
1065
  - lib/pione/util/digest.rb
@@ -1153,11 +1111,7 @@ files:
1153
1111
  - misc/pione-completion.erb
1154
1112
  - misc/pione-completion.zsh
1155
1113
  - misc/pione.god
1156
- - misc/test-drb-stop-service.rb
1157
1114
  - misc/test-ensure-and-thread-kill.rb
1158
- - misc/test-many-waiters-client.rb
1159
- - misc/test-many-waiters-server.rb
1160
- - misc/ui.xml
1161
1115
  - misc/write_and_take_test.png
1162
1116
  - misc/write_and_take_test.rb
1163
1117
  - pione.gemspec
@@ -1478,30 +1432,26 @@ files:
1478
1432
  homepage: http://pione.github.com/
1479
1433
  licenses:
1480
1434
  - MIT
1435
+ metadata: {}
1481
1436
  post_install_message:
1482
1437
  rdoc_options: []
1483
1438
  require_paths:
1484
1439
  - lib
1485
1440
  required_ruby_version: !ruby/object:Gem::Requirement
1486
- none: false
1487
1441
  requirements:
1488
1442
  - - ! '>='
1489
1443
  - !ruby/object:Gem::Version
1490
1444
  version: 1.9.3
1491
1445
  required_rubygems_version: !ruby/object:Gem::Requirement
1492
- none: false
1493
1446
  requirements:
1494
1447
  - - ! '>='
1495
1448
  - !ruby/object:Gem::Version
1496
1449
  version: '0'
1497
- segments:
1498
- - 0
1499
- hash: -724698504927199590
1500
1450
  requirements: []
1501
1451
  rubyforge_project:
1502
- rubygems_version: 1.8.25
1452
+ rubygems_version: 2.1.11
1503
1453
  signing_key:
1504
- specification_version: 3
1454
+ specification_version: 4
1505
1455
  summary: rule-based workflow engine
1506
1456
  test_files:
1507
1457
  - lib/pione/test-helper.rb