lib/artoo/connection.rb in artoo-0.3.0 vs lib/artoo/connection.rb in artoo-0.4.0
- old
+ new
@@ -5,14 +5,16 @@
# a specific group of hardware devices. Examples would be an
# Arduino, a Sphero, or an ARDrone.
class Connection
include Celluloid
include Artoo::Utility
+ include Comparable
- attr_reader :parent, :name, :port, :adaptor
+ attr_reader :parent, :name, :port, :adaptor, :connection_id
def initialize(params={})
+ @connection_id = rand(10000)
@name = params[:name].to_s
@port = Port.new(params[:port])
@parent = params[:parent]
require_adaptor(params[:adaptor] || :loopback)
@@ -33,27 +35,28 @@
def connected?
adaptor.connected?
end
+ def adaptor_name
+ adaptor.class.name
+ end
+
def to_hash
{:name => name,
+ :connection_id => connection_id,
:port => port.to_s,
- :adaptor => adaptor.class.name.demodulize,
+ :adaptor => adaptor_name.demodulize,
:connected => connected?
}
end
def as_json
MultiJson.dump(to_hash)
end
- def to_s
- "#{self.class}:0x#{self.object_id}"
- end
-
def inspect
- "#<#{to_s}>"
+ "#<Connection @id=#{object_id}, @name='#{name}', @adaptor=#{adaptor_name}>"
end
def method_missing(method_name, *arguments, &block)
unless adaptor.connected?
Logger.warn "Cannot call unconnected adaptor '#{name}', attempting to reconnect..."
\ No newline at end of file