Commit ccbabca
bin/camtasy
@@ -5,10 +5,16 @@ require "thor"
module Camtasy
class CLI < Thor
+ DEFAULT_URI='druby://localhost:8787'
+
desc 'server', 'starts a server.'
def server
- #PhotoServer.new.run('druby://localhost:8787')
- puts "server"
+ PhotoServer.new.run(DEFAULT_URI)
+ end
+
+ desc 'client', 'connect to a server'
+ def client
+ Client.new(DEFAULT_URI).run
end
end
end
lib/camtasy/client.rb
@@ -1,12 +1,12 @@
module Camtasy
class Client
- def initialize(server = DRbObject.new_with_uri('druby://localhost:8787'), stdout = $stdout)
- @server = server
+ def initialize(uri, stdout = $stdout)
+ @server = DRbObject.new_with_uri(uri)
@stdout = stdout
end
def run
- @stdout.print server.take_photo
+ @stdout.print @server.take_photo
end
end
end
lib/camtasy/server.rb
@@ -1,7 +1,5 @@
module Camtasy
class PhotoServer
- attr_reader :request, :response
-
def initialize
@request = Queue.new
@response = Queue.new
@@ -18,13 +16,13 @@ module Camtasy
def run(uri)
Thread.new do
AVCapture::Session.new.run_with(AVCapture.devices.find(&:video?)) do |connection|
- while server.request.pop
- server.response.push(connection.capture)
+ while @request.pop
+ @response.push(connection.capture)
end
end
end
- DRb.start_service(uri, server)
+ DRb.start_service(uri, self)
DRb.thread.join
end
end