lib/osc-ruby/message.rb in aberant-osc-ruby-0.1.5 vs lib/osc-ruby/message.rb in aberant-osc-ruby-0.1.6
- old
+ new
@@ -1,23 +1,32 @@
module OSC
class Message < Packet
extend Forwardable
- include Enumerable
+ # include Enumerable
attr_accessor :address
- undef_method :zip
+ attr_accessor :time
+
+ # undef_method :zip
- de = (Array.instance_methods - self.instance_methods)
- de -= %w(assoc flatten flatten! pack rassoc transpose)
- de += %w(include? sort)
+ # de = (Array.instance_methods - self.instance_methods)
+ # de -= %w(assoc flatten flatten! pack rassoc transpose)
+ # de += %w(include? sort)
- def_delegators(:@args, *de)
-
+ # def_delegators(:@args, *de)
+ def self.new_with_time( address, time, tags=nil, *args )
+ message = new( address, tags, *args )
+ message.time = time
+ message
+ end
+
def initialize(address, tags=nil, *args)
@address = address
@args = []
+
+
args.each_with_index do |arg, i|
if tags && tags[i]
case tags[i]
when ?i; @args << OSCInt32.new(arg)
when ?f; @args << OSCFloat32.new(arg)
@@ -36,16 +45,21 @@
end
end
end
- def tags() ',' + @args.collect{|x| x.tag}.join end
+ def tags() @args.collect{|x| x.tag}.join end
def encode
- s = OSCString.new(@address).encode
- s << OSCString.new(tags).encode
+ s = OSCString.new( @address ).encode
+ s << OSCString.new( ',' + tags ).encode
s << @args.collect{|x| x.encode}.join
end
def to_a() @args.collect{|x| x.val} end
+
+ def eql?( other )
+ @address == other.address &&
+ to_a == other.to_a
+ end
end
end
\ No newline at end of file