artoo-sphero 1.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 494f759984c5ab3cbb7ae3f7554d9d93bc521645
4
+ data.tar.gz: 12e3f9a754de59708bd43a56d72eed6d959b5576
5
+ SHA512:
6
+ metadata.gz: ecf4f66c889eccc2b4d90b3350514d4d5c6de44cc0a20cffef0014d94d434c17e1826ef7e153dc3f12e07fb10a2de8931e3b7593ff548fabae55506d5b865024
7
+ data.tar.gz: 49f47a74d5a628b1a5fa3acf5f448f60b43a34f7fbedec6065e8d180c79755de941899a213a96ab04b0c1228ea55de12b41903f7518f037ca8f3badd4d37066b
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ .rvmrc
2
+ .rbx
data/.rvmrc.example ADDED
@@ -0,0 +1 @@
1
+ rvm use rbx-2.0.0-rc1@artoo-sphero --create
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 1.9.3
5
+ - jruby-19mode
6
+ - rbx-19mode
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in artoo-sphero.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,62 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ artoo-sphero (1.0.0.pre)
5
+ artoo (~> 1.0.0.pre)
6
+ hybridgroup-sphero (~> 1.3.0)
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ artoo (1.0.0.pre)
12
+ celluloid (~> 0.14.0)
13
+ celluloid-io (~> 0.14.0)
14
+ multi_json (~> 1.6)
15
+ pry (~> 0.9)
16
+ rake (~> 10.0)
17
+ reel (~> 0.4.pre)
18
+ celluloid (0.14.0)
19
+ timers (>= 1.0.0)
20
+ celluloid-io (0.14.0)
21
+ celluloid (>= 0.13.0)
22
+ nio4r (>= 0.4.5)
23
+ certified (0.1.1)
24
+ coderay (1.0.9)
25
+ http (0.4.0)
26
+ certified
27
+ http_parser.rb
28
+ http_parser.rb (0.5.3)
29
+ hybridgroup-sphero (1.3.0)
30
+ metaclass (0.0.1)
31
+ method_source (0.8.1)
32
+ minitest (5.0.1)
33
+ minitest-happy (1.0.0)
34
+ mocha (0.14.0)
35
+ metaclass (~> 0.0.1)
36
+ multi_json (1.7.3)
37
+ nio4r (0.4.5)
38
+ pry (0.9.12.2)
39
+ coderay (~> 1.0.5)
40
+ method_source (~> 0.8)
41
+ slop (~> 3.4)
42
+ rack (1.5.2)
43
+ rake (10.0.4)
44
+ reel (0.4.0.pre)
45
+ celluloid-io (>= 0.8.0)
46
+ http (>= 0.2.0)
47
+ http_parser.rb (>= 0.5.3)
48
+ rack (>= 1.4.0)
49
+ websocket_parser (>= 0.1.2)
50
+ slop (3.4.5)
51
+ timers (1.1.0)
52
+ websocket_parser (0.1.4)
53
+ http
54
+
55
+ PLATFORMS
56
+ ruby
57
+
58
+ DEPENDENCIES
59
+ artoo-sphero!
60
+ minitest (~> 5.0)
61
+ minitest-happy
62
+ mocha (~> 0.14.0)
data/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright (c) 2012, 2013 The Hybrid Group
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
data/README.md ADDED
@@ -0,0 +1,16 @@
1
+ # Artoo Adaptor For Sphero
2
+
3
+ This repository contains the Artoo (http://artoo.io/) adaptor for the Sphero (http://gosphero.com) robot.
4
+
5
+ Artoo is a open source micro-framework for robotics using Ruby.
6
+
7
+ For more information abut Artoo, check out our repo at https://github.com/hybridgroup/artoo
8
+
9
+ [![Code Climate](https://codeclimate.com/github/hybridgroup/artoo-sphero.png)](https://codeclimate.com/github/hybridgroup/artoo-sphero) [![Build Status](https://travis-ci.org/hybridgroup/artoo-sphero.png?branch=master)](https://travis-ci.org/hybridgroup/artoo-sphero)
10
+
11
+ ## Installing
12
+
13
+ ```
14
+ gem install artoo-sphero
15
+ ```
16
+
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rake/testtask'
5
+
6
+ Rake::TestTask.new do |t|
7
+ t.pattern = "test/**/*_test.rb"
8
+ end
9
+
10
+ task :default => :test
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "artoo-sphero/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "artoo-sphero"
7
+ s.version = Artoo::Sphero::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Ron Evans", "Adrian Zankich"]
10
+ s.email = ["artoo@hybridgroup.com"]
11
+ s.homepage = "https://github.com/hybridgroup/artoo-sphero"
12
+ s.summary = %q{Artoo adaptor and driver for Sphero robot}
13
+ s.description = %q{Artoo adaptor and driver for Sphero robot}
14
+
15
+ s.rubyforge_project = "artoo-sphero"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ s.add_runtime_dependency 'artoo', '~> 1.0.0.pre'
23
+ s.add_runtime_dependency 'hybridgroup-sphero', '~> 1.3.0'
24
+ s.add_development_dependency 'minitest', '~> 5.0'
25
+ s.add_development_dependency 'minitest-happy'
26
+ s.add_development_dependency 'mocha', '~> 0.14.0'
27
+ end
data/bin/sphero.sh ADDED
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+
3
+ NEXT_WAIT_TIME=0
4
+ COMMAND="socat PIPE:/dev/tty.Sphero-$1-RN-SPP,nonblock TCP-LISTEN:$2,fork"
5
+ until $COMMAND || [ $NEXT_WAIT_TIME -eq 4 ]; do
6
+ echo "retry..."
7
+ sleep $(( NEXT_WAIT_TIME++ ))
8
+ done
@@ -0,0 +1,25 @@
1
+ #!/bin/bash
2
+ #
3
+ # This will create a sphero connection bound to /dev/Sphero-XXX
4
+ #
5
+ # Requires sudo or ran as root
6
+ #
7
+ # $1 = unbound /dev/rfcommXX
8
+ # $2 = sphero hardware address from hcitool scan
9
+ # $3 = sphero three letter color code
10
+ #
11
+ # Optional parameter
12
+ # $4 = bluetooth radio hcix
13
+ #
14
+ # Example
15
+ #
16
+ # sudo ./sphero_linux_bind.sh 1 00:06:66:4A:43:23 PYG hci1
17
+ #
18
+ #
19
+ if [ -z "$4" ]; then
20
+ addr="hci0"
21
+ else
22
+ addr=$4
23
+ fi
24
+ rfcomm -i $addr bind /dev/rfcomm$1 $2 1
25
+ ln -s /dev/rfcomm$1 /dev/Sphero-$3
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+
3
+ NEXT_WAIT_TIME=0
4
+ COMMAND="socat FILE:/dev/$2,nonblock,raw,b115200,echo=0 TCP-LISTEN:$1,fork"
5
+ until $COMMAND || [ $NEXT_WAIT_TIME -eq 4 ]; do
6
+ echo "retry..."
7
+ sleep $(( NEXT_WAIT_TIME++ ))
8
+ done
@@ -0,0 +1,11 @@
1
+ require 'artoo'
2
+
3
+ connection :sphero, :adaptor => :sphero, :port => '127.0.0.1:4560'
4
+ device :sphero, :driver => :sphero
5
+
6
+ work do
7
+ every(3.seconds) do
8
+ puts "Rolling..."
9
+ sphero.roll 90, rand(360)
10
+ end
11
+ end
@@ -0,0 +1,26 @@
1
+ require 'artoo/robot'
2
+
3
+ class DoubleSpheroRobot < Artoo::Robot
4
+ connection :sphero, :adaptor => :sphero
5
+ device :sphero, :driver => :sphero
6
+
7
+ work do
8
+ @count = 1
9
+ every(3.seconds) do
10
+ sphero.set_color(@count % 2 == 0 ? :green : :blue)
11
+ @count += 1
12
+ sphero.roll 90, rand(360)
13
+ end
14
+ end
15
+ end
16
+
17
+ SPHEROS = {"127.0.0.1:4560" => "/dev/tty.Sphero-BRG-RN-SPP",
18
+ "127.0.0.1:4561" => "/dev/tty.Sphero-YBW-RN-SPP"}
19
+ robots = []
20
+ SPHEROS.each_key {|p|
21
+ robots << DoubleSpheroRobot.new(:connections =>
22
+ {:sphero =>
23
+ {:port => p}})
24
+ }
25
+
26
+ DoubleSpheroRobot.work!(robots)
@@ -0,0 +1,13 @@
1
+ require 'artoo'
2
+
3
+ connection :sphero, :adaptor => :sphero, :port => '127.0.0.1:4560'
4
+ device :sphero, :driver => :sphero
5
+
6
+ work do
7
+ @count = 1
8
+ every(3.seconds) do
9
+ sphero.set_color(@count % 2 == 0 ? :green : :blue)
10
+ @count += 1
11
+ sphero.roll 60, rand(360)
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ require 'artoo'
2
+
3
+ connection :sphero, :adaptor => :sphero, :port => '127.0.0.1:4560'
4
+ device :sphero, :driver => :sphero
5
+
6
+ work do
7
+ sphero.set_color(0, 0, 0)
8
+ sphero.set_color(:red)
9
+ sphero.set_color(:yellow)
10
+ sphero.set_color(:green)
11
+ sphero.set_color(0, 255, 255)
12
+ sphero.set_color(:blue)
13
+ sphero.set_color(255, 0, 255)
14
+ sphero.set_color(:white)
15
+ end
@@ -0,0 +1,19 @@
1
+ require 'artoo'
2
+
3
+ connection :sphero, :adaptor => :sphero, :port => '127.0.0.1:4560'
4
+ device :sphero, :driver => :sphero
5
+
6
+ def contact(*args)
7
+ @contacts ||= 0
8
+ @contacts += 1
9
+ puts "Contact #{@contacts}"
10
+ end
11
+
12
+ work do
13
+ on sphero, :collision => :contact
14
+
15
+ every(3.seconds) do
16
+ puts "Rolling..."
17
+ sphero.roll 90, rand(360)
18
+ end
19
+ end
@@ -0,0 +1,34 @@
1
+ require 'artoo/robot'
2
+
3
+ class SpheroRobot < Artoo::Robot
4
+ connection :sphero, :adaptor => :sphero
5
+ device :sphero, :driver => :sphero
6
+
7
+ #api :host => '127.0.0.1', :port => '8080'
8
+
9
+ work do
10
+ @count = 1
11
+
12
+ every(3.seconds) do
13
+ sphero.set_color(@count % 2 == 0 ? :white : :blue)
14
+ @count += 1
15
+ sphero.roll 90, rand(360)
16
+ end
17
+ end
18
+ end
19
+
20
+ SPHEROS = {"127.0.0.1:4560" => "/dev/tty.Sphero-BRG-RN-SPP",
21
+ "127.0.0.1:4561" => "/dev/tty.Sphero-YBW-RN-SPP",
22
+ "127.0.0.1:4562" => "/dev/tty.Sphero-BWY-RN-SPP",
23
+ "127.0.0.1:4563" => "/dev/tty.Sphero-YRR-RN-SPP",
24
+ "127.0.0.1:4564" => "/dev/tty.Sphero-OBG-RN-SPP",
25
+ "127.0.0.1:4565" => "/dev/tty.Sphero-GOB-RN-SPP",
26
+ "127.0.0.1:4566" => "/dev/tty.Sphero-PYG-RN-SPP"}
27
+ robots = []
28
+ SPHEROS.each_key {|p|
29
+ robots << SpheroRobot.new(:connections =>
30
+ {:sphero =>
31
+ {:port => p}})
32
+ }
33
+
34
+ SpheroRobot.work!(robots)
@@ -0,0 +1,58 @@
1
+ require 'artoo/adaptors/adaptor'
2
+
3
+ module Artoo
4
+ module Adaptors
5
+ # Connect to a Sphero device
6
+ # @see http://gosphero.com Sphero information
7
+ # @see http://rubydoc.info/gems/hybridgroup-sphero Sphero gem Documentation
8
+ class Sphero < Adaptor
9
+ finalizer :finalize
10
+ attr_reader :sphero
11
+
12
+ # Number of retries when connecting
13
+ RETRY_COUNT = 5
14
+
15
+ # Closes connection with device if connected
16
+ # @return [Boolean]
17
+ def finalize
18
+ if connected?
19
+ sphero.close
20
+ end
21
+ end
22
+
23
+ # Creates a connection with Sphero object with retries
24
+ # @return [Boolean]
25
+ def connect
26
+ @retries_left = RETRY_COUNT
27
+ require 'sphero' unless defined?(::Sphero)
28
+ begin
29
+ @sphero = ::Sphero.new(connect_to)
30
+ super
31
+ return true
32
+ rescue Errno::EBUSY => e
33
+ @retries_left -= 1
34
+ if @retries_left > 0
35
+ retry
36
+ else
37
+ Logger.error e.message
38
+ Logger.error e.backtrace.inspect
39
+ return false
40
+ end
41
+ end
42
+ end
43
+
44
+ # Closes connection with device
45
+ # @return [Boolean]
46
+ def disconnect
47
+ sphero.close
48
+ super
49
+ end
50
+
51
+ # Uses method missing to call sphero actions
52
+ # @see http://rubydoc.info/gems/hybridgroup-sphero/Sphero Sphero documentation
53
+ def method_missing(method_name, *arguments, &block)
54
+ sphero.send(method_name, *arguments, &block)
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,105 @@
1
+ require 'artoo/drivers/driver'
2
+
3
+ module Artoo
4
+ module Drivers
5
+ # The Sphero driver behaviors
6
+ class Sphero < Driver
7
+
8
+ RED = [255, 0, 0]
9
+ GREEN = [0, 255, 0]
10
+ YELLOW = [255, 255, 0]
11
+ BLUE = [0, 0, 255]
12
+ WHITE = [255, 255, 255]
13
+
14
+ COMMANDS = [:detect_collisions, :clear_collisions, :collisions,
15
+ :power_notifications, :sensor_data, :set_color, :color].freeze
16
+
17
+ # Starts drives and required connections
18
+ def start_driver
19
+ begin
20
+ detect_collisions
21
+
22
+ every(interval) do
23
+ handle_collision_events
24
+ end
25
+
26
+ super
27
+ rescue Exception => e
28
+ Logger.error "Error starting Sphero driver!"
29
+ Logger.error e.message
30
+ Logger.error e.backtrace.inspect
31
+ end
32
+ end
33
+
34
+ def handle_collision_events
35
+ while i = find_event(::Sphero::Response::CollisionDetected) do
36
+ update_collision(messages.slice!(i))
37
+ end
38
+ end
39
+
40
+ # Publish collision events
41
+ def update_collision(data)
42
+ publish(event_topic_name("collision"), data)
43
+ end
44
+
45
+ # Detects collisions
46
+ # @param [Hash] params
47
+ def detect_collisions(params={})
48
+ connection.configure_collision_detection 0x01, 0x20, 0x20, 0x20, 0x20, 0x50
49
+ end
50
+
51
+ # Clears collisions
52
+ def clear_collisions
53
+ messages.clear if responses = messages
54
+ end
55
+
56
+ # @return [CollisionDetected] collision
57
+ def collisions
58
+ matching_response_types messages, ::Sphero::Response::CollisionDetected
59
+ end
60
+
61
+ # @return [PowerNotification] power notification
62
+ def power_notifications
63
+ matching_response_types messages, ::Sphero::Response::PowerNotification
64
+ end
65
+
66
+ # @return [SensorData] sensor data
67
+ def sensor_data
68
+ matching_response_types messages, ::Sphero::Response::SensorData
69
+ end
70
+
71
+ # Set color
72
+ # @param [Collection] colors
73
+ def set_color(*colors)
74
+ connection.rgb(*color(*colors))
75
+ end
76
+
77
+ # Retrieves color
78
+ # @param [Collection] colors
79
+ def color(*colors)
80
+ case colors.first
81
+ when :red then RED
82
+ when :green then GREEN
83
+ when :yellow then YELLOW
84
+ when :blue then BLUE
85
+ when :white then WHITE
86
+ else colors
87
+ end
88
+ end
89
+
90
+ private
91
+
92
+ def find_event(response_klass)
93
+ messages.index {|m| m.is_a? response_klass}
94
+ end
95
+
96
+ def matching_response_types(responses, respone_klass)
97
+ responses.select { |m| m.is_a? respone_klass } if responses
98
+ end
99
+
100
+ def messages
101
+ connection.async_messages
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,5 @@
1
+ module Artoo
2
+ module Sphero
3
+ VERSION = '1.0.0.pre'
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ require 'lib/artoo/adaptors/sphero'
2
+ require 'lib/artoo/drivers/sphero'
3
+ require 'lib/artoo-sphero/version'
@@ -0,0 +1,24 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../test_helper")
2
+ require 'artoo/adaptors/sphero'
3
+ require 'sphero'
4
+
5
+ describe Artoo::Adaptors::Sphero do
6
+ before do
7
+ @port = Artoo::Port.new('/dev/awesome')
8
+ @adaptor = Artoo::Adaptors::Sphero.new(:port => @port)
9
+ @sphero = mock('sphero')
10
+ Sphero.stubs(:new).returns(@sphero)
11
+ end
12
+
13
+ it 'Artoo::Adaptors::Sphero#connect' do
14
+ @adaptor.connect.must_equal true
15
+ end
16
+
17
+ it 'Artoo::Adaptors::Sphero#disconnect' do
18
+ @adaptor.connect
19
+
20
+ @sphero.expects(:close)
21
+ @adaptor.disconnect
22
+ @adaptor.connected?.must_equal false
23
+ end
24
+ end
@@ -0,0 +1,54 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../test_helper")
2
+ require 'artoo/drivers/sphero'
3
+
4
+ describe Artoo::Drivers::Sphero do
5
+ before do
6
+ @device = mock('device')
7
+ @driver = Artoo::Drivers::Sphero.new(:parent => @device)
8
+ @connection = mock('connection')
9
+ @col1 = ::Sphero::Response::CollisionDetected.new("yo", "ho")
10
+ @col2 = ::Sphero::Response::CollisionDetected.new("yo", "ho")
11
+ @sen1 = ::Sphero::Response::SensorData.new("yo", "ho")
12
+ @sen2 = ::Sphero::Response::SensorData.new("lo", "no")
13
+ @sen3 = ::Sphero::Response::SensorData.new("jo", "jo")
14
+ @pow1 = ::Sphero::Response::PowerNotification.new("yo", "ho")
15
+ @pow2 = ::Sphero::Response::PowerNotification.new("yo", "ho")
16
+ @connection.stubs(:async_messages).returns([@col1, @col2, @sen1, @sen2, @sen3, @pow1, @pow2])
17
+ @device.stubs(:connection).returns(@connection)
18
+ end
19
+
20
+ it 'Sphero#collisions' do
21
+ @driver.collisions.size.must_equal 2
22
+ end
23
+
24
+ it 'Sphero#power_notifications' do
25
+ @driver.power_notifications.size.must_equal 2
26
+ end
27
+
28
+ it 'Sphero#sensor_data' do
29
+ @driver.sensor_data.size.must_equal 3
30
+ end
31
+
32
+ describe 'color' do
33
+ it 'Sphero#color(:red)' do
34
+ r, g, b = @driver.color(:red)
35
+ r.must_equal 255
36
+ g.must_equal 0
37
+ b.must_equal 0
38
+ end
39
+
40
+ it 'Sphero#color(:green)' do
41
+ r, g, b = @driver.color(:green)
42
+ r.must_equal 0
43
+ g.must_equal 255
44
+ b.must_equal 0
45
+ end
46
+
47
+ it 'Sphero#color(r, g, b)' do
48
+ r, g, b = @driver.color(2, 4, 6)
49
+ r.must_equal 2
50
+ g.must_equal 4
51
+ b.must_equal 6
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,6 @@
1
+ require 'minitest/autorun'
2
+ require 'mocha/setup'
3
+
4
+ require 'artoo/robot'
5
+
6
+ Celluloid.logger = nil
metadata ADDED
@@ -0,0 +1,142 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: artoo-sphero
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.pre
5
+ platform: ruby
6
+ authors:
7
+ - Ron Evans
8
+ - Adrian Zankich
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-05-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: artoo
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: 1.0.0.pre
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: 1.0.0.pre
28
+ - !ruby/object:Gem::Dependency
29
+ name: hybridgroup-sphero
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 1.3.0
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ version: 1.3.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: minitest
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: '5.0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: '5.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: minitest-happy
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: mocha
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 0.14.0
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ~>
82
+ - !ruby/object:Gem::Version
83
+ version: 0.14.0
84
+ description: Artoo adaptor and driver for Sphero robot
85
+ email:
86
+ - artoo@hybridgroup.com
87
+ executables:
88
+ - sphero.sh
89
+ - sphero_linux_bind.sh
90
+ - sphero_linux_socat.sh
91
+ extensions: []
92
+ extra_rdoc_files: []
93
+ files:
94
+ - .gitignore
95
+ - .rvmrc.example
96
+ - .travis.yml
97
+ - Gemfile
98
+ - Gemfile.lock
99
+ - LICENSE
100
+ - README.md
101
+ - Rakefile
102
+ - artoo-sphero.gemspec
103
+ - bin/sphero.sh
104
+ - bin/sphero_linux_bind.sh
105
+ - bin/sphero_linux_socat.sh
106
+ - examples/sphero.rb
107
+ - examples/sphero2.rb
108
+ - examples/sphero_color.rb
109
+ - examples/sphero_cycle.rb
110
+ - examples/sphero_messages.rb
111
+ - examples/sphero_multiple.rb
112
+ - lib/artoo-sphero.rb
113
+ - lib/artoo-sphero/version.rb
114
+ - lib/artoo/adaptors/sphero.rb
115
+ - lib/artoo/drivers/sphero.rb
116
+ - test/adaptors/sphero_test.rb
117
+ - test/drivers/sphero_test.rb
118
+ - test/test_helper.rb
119
+ homepage: https://github.com/hybridgroup/artoo-sphero
120
+ licenses: []
121
+ metadata: {}
122
+ post_install_message:
123
+ rdoc_options: []
124
+ require_paths:
125
+ - lib
126
+ required_ruby_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - '>='
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - '>'
134
+ - !ruby/object:Gem::Version
135
+ version: 1.3.1
136
+ requirements: []
137
+ rubyforge_project: artoo-sphero
138
+ rubygems_version: 2.0.3
139
+ signing_key:
140
+ specification_version: 4
141
+ summary: Artoo adaptor and driver for Sphero robot
142
+ test_files: []