vnctools 0.0.9 → 0.1.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: 7070f1ce08f5ff05c7d8fcb9961ba0bb4e88731a
4
- data.tar.gz: 07734fb235eb62bc649438807b54d9e2aa340a06
3
+ metadata.gz: 8220175c00e0319f5ec2f710d196b3c7e7742b74
4
+ data.tar.gz: b36cbf5873c53f8c7326b35789ba5325bd18116a
5
5
  SHA512:
6
- metadata.gz: 68877e18ac8e37dd5c8600f5a4301bf66791fde310174d39c2717673fb38a59921990de4964e9dc059614e85e88d3908712e686a3f84963becbdc8af239c210b
7
- data.tar.gz: cf46f49bebf9da63d71efce96d0780149229a3cb91e60c437349196c56a57ab50e9250f3108c16894acec1fdce92c9fa4f7787eacae0be61f4b93b813e35179f
6
+ metadata.gz: fddce38135a2713fbbb02f19f6f033bb2379a0a3cbab7985a18f413f6a2211da8c369a8b46ba91fbd4401ee5a748d30f193d95c0c0d9252c1184120e639dd2f5
7
+ data.tar.gz: 2df7438a254aa66d6c197b91ce08ec01b7235f3b79d1482e526cba413ee82cbdb995d23fcea2c5a12a030c79460c841847a3e330de22b9b5c34c7115734ddb9f
data/.travis.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  rvm:
2
- - 1.8.7
3
- - 1.9.2
4
- - 1.9.3
2
+ - 1.9.3
3
+ - 2.0.0
4
+ - 2.1.0
data/LICENSE CHANGED
@@ -187,7 +187,7 @@
187
187
  same "printed page" as the copyright notice for easier
188
188
  identification within third-party archives.
189
189
 
190
- Copyright 2011-2013 Jari Bakken
190
+ Copyright 2011-2014 Jari Bakken
191
191
 
192
192
  Licensed under the Apache License, Version 2.0 (the "License");
193
193
  you may not use this file except in compliance with the License.
data/README.mdown CHANGED
@@ -16,10 +16,10 @@ server.start
16
16
  # `ffmpeg`
17
17
  recorder = VncTools::Recorder.new(server.display, "movie.mp4")
18
18
  recorder.start
19
-
19
+
20
20
  ENV['DISPLAY'] = server.display
21
21
  ...
22
-
22
+
23
23
  recorder.stop
24
24
  server.stop
25
25
  ```
@@ -44,5 +44,5 @@ Note on Patches/Pull Requests
44
44
  Copyright
45
45
  =========
46
46
 
47
- Copyright (c) 2011-2013 Jari Bakken. See LICENSE for details.
47
+ Copyright (c) 2011-2014 Jari Bakken. See LICENSE for details.
48
48
 
@@ -56,6 +56,17 @@ module VncTools
56
56
  pid_path.delete if pid_path.exist?
57
57
  end
58
58
 
59
+ def alive?
60
+ pid_path.exist? && Process.kill(0, Integer(pid_path.read))
61
+ rescue Errno::ESRCH
62
+ pid_path.delete if pid_path.exist?
63
+ false
64
+ end
65
+
66
+ def dead?
67
+ !alive?
68
+ end
69
+
59
70
  def pid_path
60
71
  @pid_path ||= Pathname.new(File.expand_path("~/.vnc/#{host}#{display}.pid"))
61
72
  end
@@ -54,9 +54,11 @@ module VncTools
54
54
  def next_server
55
55
  server = @servers.shift
56
56
 
57
- if server.display.nil?
57
+ if server.display.nil? || server.dead?
58
+ server = @server_class.new if server.dead?
59
+
58
60
  fire :on_display_starting, server
59
- start_server server
61
+ start_server(server)
60
62
  @running << server
61
63
  end
62
64
 
@@ -72,6 +74,7 @@ module VncTools
72
74
  server.start
73
75
  end
74
76
 
77
+ # can be overridden by subclasses
75
78
  def stop_server(server)
76
79
  server.stop
77
80
  end
@@ -1,3 +1,3 @@
1
1
  module VncTools
2
- VERSION = "0.0.9"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -2,7 +2,7 @@ require File.expand_path("../../spec_helper", __FILE__)
2
2
 
3
3
  module VncTools
4
4
  describe ServerPool do
5
- let(:server) { double(Server, :start => nil, :stop => nil) }
5
+ let(:server) { double(Server, :start => nil, :stop => nil, :dead? => false) }
6
6
  let(:fake_server_class) { double(:new => server)}
7
7
  let(:pool) { ServerPool.new(3, fake_server_class) }
8
8
 
@@ -25,6 +25,18 @@ module VncTools
25
25
  pool.release obj
26
26
  end
27
27
 
28
+ it 'replaces a dead server from the pool' do
29
+ server.stub(:dead? => true)
30
+ fake_server_class.should_receive(:new).exactly(3).times
31
+ pool # create pool to trigger the above
32
+
33
+ replacement_server = double(Server, :dead? => false)
34
+ fake_server_class.should_receive(:new).once.and_return(replacement_server)
35
+ replacement_server.should_receive(:start)
36
+
37
+ pool.get.should == replacement_server
38
+ end
39
+
28
40
  it "can stop the pool" do
29
41
  pool.stub(:running => [server])
30
42
  server.should_receive(:stop)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vnctools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jari Bakken
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-13 00:00:00.000000000 Z
11
+ date: 2014-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: childprocess
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  version: '0'
110
110
  requirements: []
111
111
  rubyforge_project: vnctools
112
- rubygems_version: 2.0.6
112
+ rubygems_version: 2.1.10
113
113
  signing_key:
114
114
  specification_version: 4
115
115
  summary: Simple CLI wrappers to control and record VNC displays from Ruby.