camtasy 0.0.1 → 0.0.2

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: df80c3f2bb693c4d41ec0355fcd55b81413614a8
4
- data.tar.gz: 832e1dec7b4f5052c30ca00945847202a70eb5f9
3
+ metadata.gz: 2eeb8b9e9939c5c08377fe6c9f0772ec68564164
4
+ data.tar.gz: dd70b87cf92d971ab74f783ab5cf8ad315e80269
5
5
  SHA512:
6
- metadata.gz: 6ff07426971f6163469836edddb30536dccb9dc8b28c4b013d99001d54a727ab73544f466d3c6785f89f3a510e648e499062fb12ab04edf6e53ed1e2386a0cca
7
- data.tar.gz: 042dc2a4f493372288795990cb081edbb4926af214d46de272b24554395653aa30905548bfc45fed8e13ef2e011a01efdc4bd4132151a14a19e8fc95cf6bf96e
6
+ metadata.gz: 7a34c3ca0740a65401d6a69b75b8aa08a0392ec4f7a34577dbd84ed1c667518cd760832bfe7d9545b56399b7a71bbd4cc833dee9ec9e6c62d831c287d6de4f99
7
+ data.tar.gz: 2e91820650a139f34ccd3bf9f44e2e0142d072d8752a635bc8810131266a29462af04ab8a1e90aad0b55a841c9d7d74cd0470e7c2277cfa0b404fd0846075de3
data/README.md CHANGED
@@ -1,24 +1,16 @@
1
1
  # Camtasy
2
2
 
3
- TODO: Write a gem description
3
+ A fancy dancy cam server based on the gorgeous work of that lovely
4
+ [tenderlove](http://tenderlovemaking.com/2014/03/26/webcam-photos-with-ruby.html)
4
5
 
5
6
  ## Installation
6
7
 
7
- Add this line to your application's Gemfile:
8
-
9
- gem 'camtasy'
10
-
11
- And then execute:
12
-
13
- $ bundle
14
-
15
- Or install it yourself as:
16
-
17
8
  $ gem install camtasy
18
9
 
19
10
  ## Usage
20
11
 
21
- TODO: Write usage instructions here
12
+ $ camtasy server
13
+ $ camtasy client | open -f -a /Applications/Preview.app
22
14
 
23
15
  ## Contributing
24
16
 
@@ -1,3 +1,22 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'camtasy'
4
+ require "thor"
5
+
6
+ module Camtasy
7
+ class CLI < Thor
8
+ DEFAULT_URI='druby://localhost:8787'
9
+
10
+ desc 'server', 'starts a server.'
11
+ def server
12
+ PhotoServer.new.run(DEFAULT_URI)
13
+ end
14
+
15
+ desc 'client', 'connect to a server'
16
+ def client
17
+ Client.new(DEFAULT_URI).run
18
+ end
19
+ end
20
+ end
21
+
22
+ Camtasy::CLI.start
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.add_runtime_dependency "thor", '~> 0.19'
22
+ spec.add_runtime_dependency "av_capture", '~> 1.0'
21
23
  spec.add_development_dependency "bundler", "~> 1.6"
22
24
  spec.add_development_dependency "rake"
23
25
  spec.add_development_dependency "rspec"
@@ -1,12 +1,12 @@
1
1
  module Camtasy
2
2
  class Client
3
- def initialize(server = DRbObject.new_with_uri('druby://localhost:8787'), stdout = $stdout)
4
- @server = server
3
+ def initialize(uri, stdout = $stdout)
4
+ @server = DRbObject.new_with_uri(uri)
5
5
  @stdout = stdout
6
6
  end
7
7
 
8
8
  def run
9
- @stdout.print server.take_photo
9
+ @stdout.print @server.take_photo
10
10
  end
11
11
  end
12
12
  end
@@ -1,7 +1,5 @@
1
1
  module Camtasy
2
2
  class PhotoServer
3
- attr_reader :request, :response
4
-
5
3
  def initialize
6
4
  @request = Queue.new
7
5
  @response = Queue.new
@@ -15,19 +13,17 @@ module Camtasy
15
13
  end
16
14
  end
17
15
 
18
- def run
16
+ def run(uri)
19
17
  Thread.new do
20
18
  AVCapture::Session.new.run_with(AVCapture.devices.find(&:video?)) do |connection|
21
- while server.request.pop
22
- server.response.push(connection.capture)
19
+ while @request.pop
20
+ @response.push(connection.capture)
23
21
  end
24
22
  end
25
23
  end
26
24
 
27
- DRb.start_service('druby://localhost:8787', server)
25
+ DRb.start_service(uri, self)
28
26
  DRb.thread.join
29
27
  end
30
28
  end
31
29
  end
32
-
33
- PhotoServer.new.run
@@ -1,3 +1,3 @@
1
1
  module Camtasy
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camtasy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - mo khan
@@ -10,6 +10,34 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2014-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.19'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.19'
27
+ - !ruby/object:Gem::Dependency
28
+ name: av_capture
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.0'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: bundler
15
43
  requirement: !ruby/object:Gem::Requirement