module Collab::Channel
Public Instance Methods
commit(data)
click to toggle source
# File lib/collab/channel.rb, line 23 def commit(data) @document.apply_commit(data) end
subscribed()
click to toggle source
# File lib/collab/channel.rb, line 3 def subscribed reject_unauthorized_connection unless @document = find_document starting_version = params[:startingVersion]&.to_i raise "missing startingVersion" if starting_version.nil? raise "invalid version" unless @document.possibly_saved_version? starting_version stream_for @document commits = @document.commits .where("document_version > ?", starting_version) .order(document_version: :asc) .load unless commits.empty? raise "invalid version" unless commits.first.document_version == (starting_version + 1) commits.lazy.map(&:as_json).each(method(:transmit)) end end
unsubscribed()
click to toggle source
transmit({ack: "select"})
end
# File lib/collab/channel.rb, line 43 def unsubscribed stop_all_streams # this may not be needed end