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