mruby_sandbox 0.3.3 → 0.4.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd9c4df399ffe69c47fc19c40508535bcc865c80
4
- data.tar.gz: 6d1aa9fc130b1c94428d1f48e9a50234d99ca9f4
3
+ metadata.gz: 4153c1ee7cc6e9c720dc076ac9c5f36b4af7bd18
4
+ data.tar.gz: 31afc8cb58cdc4abd03d83b1cf72207c8e65c789
5
5
  SHA512:
6
- metadata.gz: 492a853855ad3675f63dea0197bc91c99dc20277a0531095dcf9d15e6ae5e9ae9c148735d99cf3d389ffc57246ac73d18a9209c4862546bb35da16ae68791c20
7
- data.tar.gz: a4aac166188a521ea9e99625eb4b258857d6ab1b329af8a41ad05a4f51f0483bbfa2cc3b37ef941c65972434e0e41993c8cb0591954413450284b6935781898a
6
+ metadata.gz: 79148c19851f533cc0acd46408dae7f86905376cfabcfecfcfd0a2372101c8641109f945d75d42eaec06e000f387db272de17589804ab084afe9b5db26b4289a
7
+ data.tar.gz: 1d3d6d9ce89fa5e97a97b5bc1859b1c2cc1127dce92b5672f93d9c2eb637962722f9f80abdb25c88683836566b12f1ffb63ee250da59af076a0dc6efa066acf7
data/Gemfile.lock CHANGED
@@ -1,21 +1,21 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mruby_sandbox (0.3.2)
5
- pipe_rpc (~> 0.2)
4
+ mruby_sandbox (0.4.0)
5
+ pipe_rpc (~> 0.3)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  diff-lcs (1.2.5)
11
11
  json (1.8.3)
12
- pipe_rpc (0.2.2)
12
+ pipe_rpc (0.3.2)
13
13
  json
14
14
  rspec (3.4.0)
15
15
  rspec-core (~> 3.4.0)
16
16
  rspec-expectations (~> 3.4.0)
17
17
  rspec-mocks (~> 3.4.0)
18
- rspec-core (3.4.1)
18
+ rspec-core (3.4.4)
19
19
  rspec-support (~> 3.4.0)
20
20
  rspec-expectations (3.4.0)
21
21
  diff-lcs (>= 1.2.0, < 2.0)
@@ -23,7 +23,7 @@ GEM
23
23
  rspec-its (1.2.0)
24
24
  rspec-core (>= 3.0.0)
25
25
  rspec-expectations (>= 3.0.0)
26
- rspec-mocks (3.4.0)
26
+ rspec-mocks (3.4.1)
27
27
  diff-lcs (>= 1.2.0, < 2.0)
28
28
  rspec-support (~> 3.4.0)
29
29
  rspec-mocks-matchers-send_message (0.3.1)
@@ -1,3 +1,3 @@
1
1
  class MrubySandbox
2
- VERSION = "0.3.3"
2
+ VERSION = "0.4.0"
3
3
  end
data/lib/mruby_sandbox.rb CHANGED
@@ -15,22 +15,13 @@ class MrubySandbox
15
15
  end
16
16
  end
17
17
 
18
- def self.finalize(pid)
19
- proc do |id|
20
- Process.kill 9, pid
21
- Process.wait pid
22
- logger.debug "Sandbox(#{id}) garbage collected and process #{pid} killed"
23
- end
24
- end
25
-
26
18
  def initialize
27
19
  input, w = IO.pipe
28
20
  r, output = IO.pipe
29
- pid = spawn(executable, in: r, out: w)
21
+ @pid = spawn(executable, in: r, out: w)
30
22
  r.close; w.close
31
23
 
32
- self.class.logger.debug "Sandbox(#{__id__}) created with process #{pid}"
33
- ObjectSpace.define_finalizer(self, self.class.finalize(pid))
24
+ self.class.logger.debug "Sandbox(#{__id__}) created with process #{@pid}"
34
25
 
35
26
  @hub = PipeRpc::Hub.new(input: input, output: output)
36
27
  @data = {}
@@ -66,6 +57,15 @@ class MrubySandbox
66
57
  end
67
58
  end
68
59
 
60
+ def tear_down
61
+ return unless @pid
62
+ @hub.cancel
63
+ Process.kill 9, @pid
64
+ Process.wait @pid
65
+ self.class.logger.debug "Sandbox(#{__id__}) teared down and process #{@pid} killed"
66
+ @pid = nil
67
+ end
68
+
69
69
  private
70
70
 
71
71
  def executable
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = ["build_mruby_sandbox"]
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_runtime_dependency "pipe_rpc", "~> 0.2"
24
+ spec.add_runtime_dependency "pipe_rpc", "~> 0.3"
25
25
  spec.add_development_dependency "bundler", "~> 1.8"
26
26
  spec.add_development_dependency "rspec", "~> 3.4"
27
27
  spec.add_development_dependency "rspec-its"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mruby_sandbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christopher Aue
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-02 00:00:00.000000000 Z
11
+ date: 2016-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pipe_rpc
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.2'
19
+ version: '0.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.2'
26
+ version: '0.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement