class Deepstream::RecordHandler
Public Class Methods
new(client)
click to toggle source
# File lib/deepstream/record_handler.rb, line 8 def initialize(client) @client = client @records = {} end
Public Instance Methods
delete(name)
click to toggle source
# File lib/deepstream/record_handler.rb, line 58 def delete(name) @client.send_message(TOPIC::RECORD, ACTION::DELETE, name) if @records.delete(name) end
discard(name)
click to toggle source
# File lib/deepstream/record_handler.rb, line 54 def discard(name) unsubscribe(name) end
get(name, list: nil)
click to toggle source
# File lib/deepstream/record_handler.rb, line 30 def get(name, list: nil) name = name.dup.to_s if list name.prepend("#{list}/") @records[list] ||= List.new(@client, list) sleep 0.1 while @records[list].version.nil? @records[list].add(name) end @records[name] ||= Record.new(@client, name) end
Also aliased as: get_record
get_list(name)
click to toggle source
# File lib/deepstream/record_handler.rb, line 42 def get_list(name) @records[name] ||= List.new(@client, name) end
on_message(message)
click to toggle source
# File lib/deepstream/record_handler.rb, line 20 def on_message(message) case message.action when ACTION::ACK then nil when ACTION::PATCH then patch(message) when ACTION::READ then read(message) when ACTION::UPDATE then update(message) else raise(UnknownAction, message) end end
reinitialize()
click to toggle source
# File lib/deepstream/record_handler.rb, line 13 def reinitialize @records.map do |record| name, rec = record rec.start_reinitializing end end
set(name, *args)
click to toggle source
# File lib/deepstream/record_handler.rb, line 46 def set(name, *args) @records[name]&.set(*args) end
unsubscribe(name)
click to toggle source
# File lib/deepstream/record_handler.rb, line 50 def unsubscribe(name) @records[name]&.unsubscribe end
Private Instance Methods
patch(message)
click to toggle source
# File lib/deepstream/record_handler.rb, line 75 def patch(message) name, *data = message.data @records[name]&.patch(*data) end
read(message)
click to toggle source
# File lib/deepstream/record_handler.rb, line 64 def read(message) name, *data = message.data return @records[name].end_reinitializing if @records[name]&.is_reinitializing? @records[name]&.read(*data) end
update(message)
click to toggle source
# File lib/deepstream/record_handler.rb, line 70 def update(message) name, *data = message.data @records[name]&.update(*data) end