class Bernstein::Message

Attributes

id[R]
osc_message[R]

Public Class Methods

build(address = '', *args) click to toggle source
# File lib/bernstein/message.rb, line 16
def self.build(address = '', *args)
  Message.new(OSC::Message.new(address, *args))
end
build_from_string(message_string) click to toggle source

only supports float arguments

# File lib/bernstein/message.rb, line 21
def self.build_from_string(message_string)
  address, args = parse_message_string(message_string)
  Message.new(OSC::Message.new(address, *args))
end
deserialize(serialized_msg) click to toggle source
# File lib/bernstein/message.rb, line 26
def self.deserialize(serialized_msg)
  data = JSON.parse(serialized_msg)
  Message.new OSC::Message.new(data['address'], *data['args']), data['id']
end
get_queued_messages() click to toggle source
# File lib/bernstein/message.rb, line 43
def self.get_queued_messages
  @@persister.queued_messages
end
get_status(id) click to toggle source
# File lib/bernstein/message.rb, line 35
def self.get_status(id)
  @@persister.status(id)
end
new(osc_message, id = nil) click to toggle source
# File lib/bernstein/message.rb, line 10
def initialize(osc_message, id = nil)
  @osc_message = osc_message
  @id = id || new_id
  @is_saved = false
end
set_as_sent!(id) click to toggle source
# File lib/bernstein/message.rb, line 47
def self.set_as_sent!(id)
  @@persister.mark_as_sent(id)
end

Protected Class Methods

parse_message_string(message_string) click to toggle source
# File lib/bernstein/message.rb, line 73
def self.parse_message_string message_string
  message_array = message_string.split
  [message_array.shift, message_array.map{|arg| arg.to_f}]
end

Public Instance Methods

==(other) click to toggle source
# File lib/bernstein/message.rb, line 63
def ==(other)
  (self.class == other.class) && (self.osc_message == other.osc_message) &&
    (self.id == other.id)
end
save!() click to toggle source
# File lib/bernstein/message.rb, line 51
def save!
  unless @is_saved
    @@persister.add(self)
    @is_saved = true
  end
end
send!(expect_awk = true) click to toggle source
# File lib/bernstein/message.rb, line 58
def send!(expect_awk = true)
  @@osc_connection.send_message self, expect_awk
  @@persister.dequeue @id, !expect_awk
end
serialize() click to toggle source
# File lib/bernstein/message.rb, line 31
def serialize
  {'id' => @id, 'address' => @osc_message.address, 'args' => @osc_message.args}.to_json
end
status() click to toggle source
# File lib/bernstein/message.rb, line 39
def status
  @@persister.status(@id)
end

Protected Instance Methods

new_id() click to toggle source
# File lib/bernstein/message.rb, line 69
def new_id
  Time.now.to_f.to_s.delete('.')
end