karotz 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.
data/.document ADDED
@@ -0,0 +1,2 @@
1
+ lib/**/*.rb
2
+ README.rdoc
data/.specfile ADDED
@@ -0,0 +1 @@
1
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,13 @@
1
+ script: "bundle exec rake"
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - 1.9.3
6
+ - rbx
7
+ - rbx-2.0
8
+ - ree
9
+ - ruby-head
10
+ - jruby
11
+ branches:
12
+ only:
13
+ - master
data/Guardfile ADDED
@@ -0,0 +1,5 @@
1
+ guard 'rspec', :version => 2 do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
data/README.rdoc ADDED
@@ -0,0 +1,19 @@
1
+ == Info
2
+
3
+ Status: http://stillmaintained.com/phoet/karotz.png
4
+ Build: http://travis-ci.org/phoet/karotz.png
5
+
6
+ This gem is still in early development.
7
+
8
+ == Docs
9
+
10
+ Right now, please have a look at the specs for usage examples.
11
+
12
+ Supported methods:
13
+
14
+ * ears
15
+ * led
16
+
17
+ == Todos
18
+
19
+ * add color mixing method for RGB usage
data/Rakefile CHANGED
@@ -1 +1,11 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ Bundler::GemHelper.install_tasks
5
+
6
+ RSpec::Core::RakeTask.new do |t|
7
+ t.rspec_opts = ["--color"]
8
+ t.pattern = 'spec/**/*_spec.rb'
9
+ end
10
+
11
+ task :default=>:spec
data/karotz.gemspec CHANGED
@@ -17,10 +17,16 @@ Gem::Specification.new do |s|
17
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
18
  s.require_paths = ["lib"]
19
19
 
20
+ s.add_development_dependency "rake"
20
21
  s.add_development_dependency "rspec"
21
22
  s.add_development_dependency "pry"
23
+ s.add_development_dependency "guard-rspec"
24
+ s.add_development_dependency "webmock"
25
+ s.add_development_dependency "vcr"
22
26
 
23
27
  s.add_runtime_dependency "httpclient"
24
28
  s.add_runtime_dependency "httpi"
25
29
  s.add_runtime_dependency "crack"
30
+
31
+ s.add_runtime_dependency('jruby-openssl') if RUBY_PLATFORM == 'java'
26
32
  end
data/lib/karotz/client.rb CHANGED
@@ -1,10 +1,12 @@
1
+ require 'uri'
1
2
  require 'base64'
2
3
  require 'httpi'
3
- require 'uri'
4
4
  require 'httpclient'
5
+ require 'crack'
5
6
 
6
7
  module Karotz
7
8
  class Client
9
+
8
10
  API = "http://api.karotz.com/api/karotz/"
9
11
  DIGEST = OpenSSL::Digest::Digest.new('sha1')
10
12
 
@@ -18,29 +20,46 @@ module Karotz
18
20
  query = create_query(params)
19
21
  hmac = OpenSSL::HMAC.digest(DIGEST, secret, query)
20
22
  signed = Base64.encode64(hmac).strip
21
- p url = "#{API}start?#{query}&signature=#{URI.encode(signed)}"
22
- url
23
+ "#{API}start?#{query}&signature=#{URI.encode(signed)}"
23
24
  end
24
25
 
25
26
  def self.ears(interactive_id, params={:reset => true})
26
- raise "interactive_id is needed!" unless interactive_id
27
- HTTPI.get "#{API}ears?#{create_query({ :interactiveid => interactive_id }.merge(params))}"
27
+ request :ears, interactive_id, params
28
28
  end
29
29
 
30
+ #============LED================
30
31
 
31
- def self.led(interactive_id, params={:action => :pulse, :color => "00FF00", :period => 3000, :pulse => 500})
32
- raise "interactive_id is needed!" unless interactive_id
33
- HTTPI.get "#{API}led?#{create_query({ :interactiveid => interactive_id }.merge(params))}"
32
+ def self.led(interactive_id, params={:action => :pulse, :color => Color::BLUE, :period => 3000, :pulse => 500})
33
+ request :led, interactive_id, params
34
+ end
35
+
36
+ def self.fade(interactive_id, params={:color => Color::BLUE, :period => 3000})
37
+ request :led, interactive_id, {:action => :fade}.merge(params)
34
38
  end
35
-
39
+
40
+ def self.light(interactive_id, params={:color => Color::BLUE})
41
+ request :led, interactive_id, {:action => :light}.merge(params)
42
+ end
43
+
44
+ #============LIFE_CYCLE=========
45
+
36
46
  def self.interactivemode(interactive_id, params={:action => :stop})
37
- HTTPI.get "#{API}interactivemode?#{create_query({ :interactiveid => interactive_id }.merge(params))}"
47
+ request :interactivemode, interactive_id, params
38
48
  end
39
49
 
40
50
  private()
41
51
 
52
+ def self.request(endpoint, interactive_id, params={})
53
+ raise "interactive_id is needed!" unless interactive_id
54
+ raise "endpoint is needed!" unless endpoint
55
+ url = "#{API}#{endpoint}?#{create_query({ :interactiveid => interactive_id }.merge(params))}"
56
+ response = HTTPI.get(url)
57
+ answer = Crack::XML.parse(response.body)
58
+ raise "bad response from server" unless answer["VoosMsg"]["response"]["code"] == "OK"
59
+ end
60
+
42
61
  def self.create_query(params)
43
- params.sort.map { |key, value| "#{key}=#{URI.encode(value.to_s)}" }.join('&')
62
+ params.map { |key, value| "#{key}=#{URI.encode(value.to_s)}" }.sort.join('&')
44
63
  end
45
64
 
46
65
  end
@@ -0,0 +1,14 @@
1
+ module Karotz
2
+ class Color
3
+ BLACK = "000000"
4
+ BLUE = "0000FF"
5
+ CYAN = "00FF9F"
6
+ GREEN = "00FF00"
7
+ ORANGE = "FFA500"
8
+ PINK = "FFCFAF"
9
+ PURPLE = "9F00FF"
10
+ RED = "FF0000"
11
+ YELLOW = "75FF00"
12
+ WHITE = "4FFF68"
13
+ end
14
+ end
@@ -0,0 +1,45 @@
1
+ module Karotz
2
+ class Configuration
3
+ class << self
4
+
5
+ attr_accessor :install_id, :api_key, :secret
6
+ attr_accessor :logger
7
+
8
+ def configure(options={})
9
+ init_config
10
+ if block_given?
11
+ yield self
12
+ else
13
+ options.each do |key, value|
14
+ send(:"#{key}=", value)
15
+ end
16
+ end
17
+ self
18
+ end
19
+
20
+ def validate_credentials!
21
+ raise "you have to configure Karotz: 'configure :install_id => 'your-install-id', :api_key => 'your-api-key', :secret => 'your-secret'" if blank?(:api_key) || blank?(:secret) || blank?(:install_id)
22
+ end
23
+
24
+ def reset
25
+ init_config(true)
26
+ end
27
+
28
+ def blank?(key)
29
+ val = self.send :key
30
+ val.nil? || val.empty?
31
+ end
32
+
33
+ private()
34
+
35
+ def init_config(force=false)
36
+ return if @init && !force
37
+ @init = true
38
+ @secret = ''
39
+ @api_key = ''
40
+ @install_id = ''
41
+ @logger = Logger.new(STDERR)
42
+ end
43
+ end
44
+ end
45
+ end
@@ -1,3 +1,3 @@
1
1
  module Karotz
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/karotz.rb CHANGED
@@ -1,6 +1,4 @@
1
1
  require "karotz/version"
2
+ require "karotz/configuration"
3
+ require "karotz/colors"
2
4
  require "karotz/client"
3
-
4
- module Karotz
5
- # Your code goes here...
6
- end
@@ -0,0 +1,18 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://api.karotz.com:80/api/karotz/ears?interactiveid=25e76d1a-d60b-47c2-8832-95628f46ae1e&left=90&relative=false&right=90
6
+ body:
7
+ headers:
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ content-length:
14
+ - '255'
15
+ connection:
16
+ - keep-alive
17
+ body: <VoosMsg><id>d1478c1c-c076-4716-b002-d5e9bc463cb1</id><correlationId>713104f0-5ce8-4478-b6df-2c127700833c</correlationId><interactiveId>25e76d1a-d60b-47c2-8832-95628f46ae1e</interactiveId><callback></callback><response><code>OK</code></response></VoosMsg>
18
+ http_version: '1.1'
@@ -0,0 +1,18 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://api.karotz.com:80/api/karotz/ears?interactiveid=25e76d1a-d60b-47c2-8832-95628f46ae1e&left=0&relative=false&right=0
6
+ body:
7
+ headers:
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ content-length:
14
+ - '255'
15
+ connection:
16
+ - keep-alive
17
+ body: <VoosMsg><id>b5fcfc80-caeb-442c-88ee-8e914151d7db</id><correlationId>46b666fb-99e6-46f7-a64f-8edb14278708</correlationId><interactiveId>25e76d1a-d60b-47c2-8832-95628f46ae1e</interactiveId><callback></callback><response><code>OK</code></response></VoosMsg>
18
+ http_version: '1.1'
@@ -0,0 +1,18 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://api.karotz.com:80/api/karotz/ears?interactiveid=25e76d1a-d60b-47c2-8832-95628f46ae1e&reset=true
6
+ body:
7
+ headers:
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ content-length:
14
+ - '255'
15
+ connection:
16
+ - keep-alive
17
+ body: <VoosMsg><id>b01b24eb-d868-4ab2-ba27-cd3cf71f1d9a</id><correlationId>8ebf64c2-ad5f-4373-99e7-bf64194c1178</correlationId><interactiveId>25e76d1a-d60b-47c2-8832-95628f46ae1e</interactiveId><callback></callback><response><code>OK</code></response></VoosMsg>
18
+ http_version: '1.1'
@@ -0,0 +1,18 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://api.karotz.com:80/api/karotz/ears?interactiveid=25e76d1a-d60b-47c2-8832-95628f46ae1e&reset=true
6
+ body:
7
+ headers:
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ content-length:
14
+ - '255'
15
+ connection:
16
+ - keep-alive
17
+ body: <VoosMsg><id>52e32338-c923-48c5-8e44-caa976fdaf61</id><correlationId>bee9fd48-f156-46f7-b9b6-88cb8896770d</correlationId><interactiveId>25e76d1a-d60b-47c2-8832-95628f46ae1e</interactiveId><callback></callback><response><code>OK</code></response></VoosMsg>
18
+ http_version: '1.1'
@@ -0,0 +1,18 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://api.karotz.com:80/api/karotz/interactivemode?action=stop&interactiveid=25e76d1a-d60b-47c2-8832-95628f46ae1e
6
+ body:
7
+ headers:
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ content-length:
14
+ - '255'
15
+ connection:
16
+ - keep-alive
17
+ body: <VoosMsg><id>bcfcf298-779d-4cad-aa5c-168b73747852</id><correlationId>8c07a721-0519-49c3-9f55-cdb21deae486</correlationId><interactiveId>25e76d1a-d60b-47c2-8832-95628f46ae1e</interactiveId><callback></callback><response><code>OK</code></response></VoosMsg>
18
+ http_version: '1.1'
@@ -0,0 +1,18 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://api.karotz.com:80/api/karotz/led?action=fade&color=77FF44&interactiveid=117c09d2-02b9-4b38-b64b-9b821ac7c91c&period=3000
6
+ body:
7
+ headers:
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ content-length:
14
+ - '255'
15
+ connection:
16
+ - keep-alive
17
+ body: <VoosMsg><id>9cb2d118-f326-4894-a5e8-d2b84f55fa4f</id><correlationId>747d7bf4-66a4-4d1d-9daf-aa93a35c328c</correlationId><interactiveId>117c09d2-02b9-4b38-b64b-9b821ac7c91c</interactiveId><callback></callback><response><code>OK</code></response></VoosMsg>
18
+ http_version: '1.1'
@@ -0,0 +1,18 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://api.karotz.com:80/api/karotz/led?action=light&color=77FF44&interactiveid=117c09d2-02b9-4b38-b64b-9b821ac7c91c
6
+ body:
7
+ headers:
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ content-length:
14
+ - '255'
15
+ connection:
16
+ - keep-alive
17
+ body: <VoosMsg><id>af7fde64-0603-4ef2-ae2e-b00e8d1632ca</id><correlationId>00af4913-7d7a-4d7e-b5f7-50d1b33cdfb3</correlationId><interactiveId>117c09d2-02b9-4b38-b64b-9b821ac7c91c</interactiveId><callback></callback><response><code>OK</code></response></VoosMsg>
18
+ http_version: '1.1'
@@ -0,0 +1,18 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://api.karotz.com:80/api/karotz/led?action=pulse&color=00FF00&interactiveid=25e76d1a-d60b-47c2-8832-95628f46ae1e&period=3000&pulse=500
6
+ body:
7
+ headers:
8
+ response: !ruby/struct:VCR::Response
9
+ status: !ruby/struct:VCR::ResponseStatus
10
+ code: 200
11
+ message: OK
12
+ headers:
13
+ content-length:
14
+ - '255'
15
+ connection:
16
+ - keep-alive
17
+ body: <VoosMsg><id>56e477b2-fc36-4210-a618-e4e3e21e78db</id><correlationId>f8315c4f-4943-4775-9af9-f2b123a5e858</correlationId><interactiveId>25e76d1a-d60b-47c2-8832-95628f46ae1e</interactiveId><callback></callback><response><code>OK</code></response></VoosMsg>
18
+ http_version: '1.1'
data/spec/karotz_spec.rb CHANGED
@@ -1,36 +1,41 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
3
  module Karotz
4
- describe Client do
4
+ describe Configuration do
5
+ it "should be initialized with defaults" do
6
+ Configuration.install_id.should be_empty
7
+ Configuration.api_key.should be_empty
8
+ Configuration.secret.should be_empty
9
+ Configuration.logger.should_not be_nil
10
+ end
5
11
 
6
- COLORS = {
7
- :blue => '0000FF',
8
- :red => 'FF0000',
9
- :green => '00FF00',
10
- :yellow => 'FFFF00'
11
- }
12
+ it "should configure with a hash" do
13
+ Configuration.configure :api_key => 'some-key'
14
+ Configuration.api_key.should eql('some-key')
15
+ end
12
16
 
13
- before(:each) do
14
- @install_id = ENV['KAROTZ_INSTALL_ID']
15
- @api_key = ENV['KAROTZ_API_KEY']
16
- @secret = ENV['KAROTZ_SECRET']
17
- # currently retrieved via
18
- # http://www.karotz.com/authentication/run/karotz/API_KEY
19
- # cause login-process does throws 502 BAD_GATEWAY
20
- @interactive_id = "4b434bfc-b4a0-4f69-9420-04f2b37a61ed"
17
+ it "should be initializable with a block" do
18
+ Configuration.configure do |conf|
19
+ conf.install_id = 'some-id'
20
+ end
21
+ Configuration.install_id.should eql('some-id')
21
22
  end
23
+ end
22
24
 
25
+ describe Client do
23
26
  it "should create a signed url" do
24
- Client.start_url(@install_id, @api_key, @secret, '7112317', '1324833464').should eql('http://api.karotz.com/api/karotz/start?apikey=7afdd4b7-3bc8-4469-bda2-1d8bc1e218a0&installid=1a9bf66d-6a47-4f6e-a260-d42fd70a5583&once=7112317&timestamp=1324833464&signature=hhE0T+UwSTD1aCfaE6MJXshYDHs=')
27
+ args = ['INSTALL_ID', 'API_KEY', 'SECRET', '7112317', '1324833464']
28
+ url = "http://api.karotz.com/api/karotz/start?apikey=API_KEY&installid=INSTALL_ID&once=7112317&timestamp=1324833464&signature=Vb+yZK3eNlXGh+9DfnwIqQ+ZIAE="
29
+ Client.start_url(*args).should eql(url)
25
30
  end
26
31
 
27
32
  context "ears" do
28
33
 
29
- it "should wiggle the ears" do
34
+ it "should wiggle the ears", :vcr => true do
30
35
  Client.ears(@interactive_id)
31
36
  end
32
37
 
33
- it "should make the bull" do
38
+ it "should make the bull", :vcr => true do
34
39
  params = {
35
40
  :left => 0,
36
41
  :right => 0,
@@ -39,7 +44,7 @@ module Karotz
39
44
  Client.ears(@interactive_id, params)
40
45
  end
41
46
 
42
- it "should look sad" do
47
+ it "should look sad", :vcr => true do
43
48
  params = {
44
49
  :left => 90,
45
50
  :right => 90,
@@ -48,7 +53,7 @@ module Karotz
48
53
  Client.ears(@interactive_id, params)
49
54
  end
50
55
 
51
- it "should reset the ears" do
56
+ it "should reset the ears", :vcr => true do
52
57
  params = {
53
58
  :reset => true
54
59
  }
@@ -57,13 +62,21 @@ module Karotz
57
62
  end
58
63
 
59
64
  context "led" do
60
- it "should pulse" do
65
+ it "should pulse", :vcr => true do
61
66
  Client.led(@interactive_id)
62
67
  end
68
+
69
+ it "should fade", :vcr => true do
70
+ Client.fade(@interactive_id)
71
+ end
72
+
73
+ it "should light", :vcr => true do
74
+ Client.light(@interactive_id)
75
+ end
63
76
  end
64
77
 
65
78
  context "interactivemode" do
66
- it "should stop the mode" do
79
+ it "should stop the mode", :vcr => true do
67
80
  Client.interactivemode(@interactive_id)
68
81
  end
69
82
  end
data/spec/spec_helper.rb CHANGED
@@ -2,5 +2,41 @@ $:.unshift File.join(File.dirname(__FILE__),'..','..','lib')
2
2
 
3
3
  require "rspec"
4
4
  require "pry"
5
+ require "vcr"
6
+ require "karotz"
5
7
 
6
- require "karotz"
8
+ VCR.config do |c|
9
+ c.cassette_library_dir = 'spec/cassettes'
10
+ c.stub_with :webmock
11
+ end
12
+
13
+ RSpec.configure do |config|
14
+ config.mock_with :rspec
15
+
16
+ config.treat_symbols_as_metadata_keys_with_true_values = true
17
+ config.around(:each, :vcr => true) do |example|
18
+ name = example.metadata[:full_description].downcase.gsub(/\W+/, "_").split("_", 2).join("/")
19
+ VCR.use_cassette(name, :record => :new_episodes, :match_requests_on => [:host, :path]) do
20
+ example.call
21
+ end
22
+ end
23
+
24
+ config.before :each do
25
+ HTTPI.log = false
26
+
27
+ @install_id = ENV['KAROTZ_INSTALL_ID']
28
+ @api_key = ENV['KAROTZ_API_KEY']
29
+ @secret = ENV['KAROTZ_SECRET']
30
+ # currently retrieved via
31
+ # http://www.karotz.com/authentication/run/karotz/API_KEY
32
+ # cause login-process does throws 502 BAD_GATEWAY
33
+ @interactive_id = "117c09d2-02b9-4b38-b64b-9b821ac7c91c"
34
+
35
+ Karotz::Configuration.reset
36
+ end
37
+ end
38
+
39
+ # setup for travis-ci
40
+ ENV['KAROTZ_INSTALL_ID'] ||= 'KAROTZ_INSTALL_ID'
41
+ ENV['KAROTZ_API_KEY'] ||= 'KAROTZ_API_KEY'
42
+ ENV['KAROTZ_SECRET'] ||= 'KAROTZ_SECRET'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: karotz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-25 00:00:00.000000000 Z
12
+ date: 2011-12-26 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: &2156300680 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *2156300680
14
25
  - !ruby/object:Gem::Dependency
15
26
  name: rspec
16
- requirement: &2156037940 !ruby/object:Gem::Requirement
27
+ requirement: &2156300260 !ruby/object:Gem::Requirement
17
28
  none: false
18
29
  requirements:
19
30
  - - ! '>='
@@ -21,10 +32,43 @@ dependencies:
21
32
  version: '0'
22
33
  type: :development
23
34
  prerelease: false
24
- version_requirements: *2156037940
35
+ version_requirements: *2156300260
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: pry
27
- requirement: &2156037520 !ruby/object:Gem::Requirement
38
+ requirement: &2156299840 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2156299840
47
+ - !ruby/object:Gem::Dependency
48
+ name: guard-rspec
49
+ requirement: &2156299420 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *2156299420
58
+ - !ruby/object:Gem::Dependency
59
+ name: webmock
60
+ requirement: &2156299000 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *2156299000
69
+ - !ruby/object:Gem::Dependency
70
+ name: vcr
71
+ requirement: &2156298580 !ruby/object:Gem::Requirement
28
72
  none: false
29
73
  requirements:
30
74
  - - ! '>='
@@ -32,10 +76,10 @@ dependencies:
32
76
  version: '0'
33
77
  type: :development
34
78
  prerelease: false
35
- version_requirements: *2156037520
79
+ version_requirements: *2156298580
36
80
  - !ruby/object:Gem::Dependency
37
81
  name: httpclient
38
- requirement: &2156037100 !ruby/object:Gem::Requirement
82
+ requirement: &2156314540 !ruby/object:Gem::Requirement
39
83
  none: false
40
84
  requirements:
41
85
  - - ! '>='
@@ -43,10 +87,10 @@ dependencies:
43
87
  version: '0'
44
88
  type: :runtime
45
89
  prerelease: false
46
- version_requirements: *2156037100
90
+ version_requirements: *2156314540
47
91
  - !ruby/object:Gem::Dependency
48
92
  name: httpi
49
- requirement: &2156036680 !ruby/object:Gem::Requirement
93
+ requirement: &2156314120 !ruby/object:Gem::Requirement
50
94
  none: false
51
95
  requirements:
52
96
  - - ! '>='
@@ -54,10 +98,10 @@ dependencies:
54
98
  version: '0'
55
99
  type: :runtime
56
100
  prerelease: false
57
- version_requirements: *2156036680
101
+ version_requirements: *2156314120
58
102
  - !ruby/object:Gem::Dependency
59
103
  name: crack
60
- requirement: &2156036260 !ruby/object:Gem::Requirement
104
+ requirement: &2156313700 !ruby/object:Gem::Requirement
61
105
  none: false
62
106
  requirements:
63
107
  - - ! '>='
@@ -65,7 +109,7 @@ dependencies:
65
109
  version: '0'
66
110
  type: :runtime
67
111
  prerelease: false
68
- version_requirements: *2156036260
112
+ version_requirements: *2156313700
69
113
  description: ruby bindings for karotz rest api
70
114
  email:
71
115
  - phoetmail@googlemail.com
@@ -73,15 +117,29 @@ executables: []
73
117
  extensions: []
74
118
  extra_rdoc_files: []
75
119
  files:
120
+ - .document
76
121
  - .gitignore
77
122
  - .rvmrc
123
+ - .specfile
124
+ - .travis.yml
78
125
  - Gemfile
79
- - README
126
+ - Guardfile
127
+ - README.rdoc
80
128
  - Rakefile
81
129
  - karotz.gemspec
82
130
  - lib/karotz.rb
83
131
  - lib/karotz/client.rb
132
+ - lib/karotz/colors.rb
133
+ - lib/karotz/configuration.rb
84
134
  - lib/karotz/version.rb
135
+ - spec/cassettes/karotz/client_ears_should_look_sad.yml
136
+ - spec/cassettes/karotz/client_ears_should_make_the_bull.yml
137
+ - spec/cassettes/karotz/client_ears_should_reset_the_ears.yml
138
+ - spec/cassettes/karotz/client_ears_should_wiggle_the_ears.yml
139
+ - spec/cassettes/karotz/client_interactivemode_should_stop_the_mode.yml
140
+ - spec/cassettes/karotz/client_led_should_fade.yml
141
+ - spec/cassettes/karotz/client_led_should_light.yml
142
+ - spec/cassettes/karotz/client_led_should_pulse.yml
85
143
  - spec/karotz_spec.rb
86
144
  - spec/spec_helper.rb
87
145
  homepage: http://github.com/phoet/karotz
@@ -109,5 +167,13 @@ signing_key:
109
167
  specification_version: 3
110
168
  summary: ruby bindings for karotz rest api
111
169
  test_files:
170
+ - spec/cassettes/karotz/client_ears_should_look_sad.yml
171
+ - spec/cassettes/karotz/client_ears_should_make_the_bull.yml
172
+ - spec/cassettes/karotz/client_ears_should_reset_the_ears.yml
173
+ - spec/cassettes/karotz/client_ears_should_wiggle_the_ears.yml
174
+ - spec/cassettes/karotz/client_interactivemode_should_stop_the_mode.yml
175
+ - spec/cassettes/karotz/client_led_should_fade.yml
176
+ - spec/cassettes/karotz/client_led_should_light.yml
177
+ - spec/cassettes/karotz/client_led_should_pulse.yml
112
178
  - spec/karotz_spec.rb
113
179
  - spec/spec_helper.rb
data/README DELETED
@@ -1,3 +0,0 @@
1
- this will be a wrapper for the karotz rest-api.
2
-
3
- early development, expect more comming this week!