Module: DDP::Server::Protocol::Data

Included in:
DDP::Server::Protocol
Defined in:
lib/ddp/server/protocol/data.rb

Overview

Protocol regarding handling data subscriptions

Instance Method Summary collapse

Instance Method Details

#handle_dataObject



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/ddp/server/protocol/data.rb', line 6

def handle_data
  case @message['msg']
  when 'sub'
    handle_sub(@message['id'], @message['name'], @message['params'])
    true
  when 'unsub'
    handle_unsub(@message['id'])
    true
  else
    false
  end
end

#handle_sub(_id, _name, _params) ⇒ Object



19
20
21
# File 'lib/ddp/server/protocol/data.rb', line 19

def handle_sub(_id, _name, _params)
  raise 'Must be overridden'
end

#handle_unsub(_id) ⇒ Object



23
24
25
# File 'lib/ddp/server/protocol/data.rb', line 23

def handle_unsub(_id)
  raise 'Must be overridden'
end

#send_added(collection, id, fields = nil) ⇒ Object



33
34
35
36
37
# File 'lib/ddp/server/protocol/data.rb', line 33

def send_added(collection, id, fields = nil)
  message = { msg: 'added', id: id, collection: collection }
  message.merge!(fields: fields) if fields
  write_message message
end

#send_added_before(collection, id, fields = nil, before = nil) ⇒ Object



54
55
56
57
58
# File 'lib/ddp/server/protocol/data.rb', line 54

def send_added_before(collection, id, fields = nil, before = nil)
  message = { msg: 'addedBefore', id: id, collection: collection, before: before }
  message.merge!(fields: fields) if fields
  write_message message
end

#send_changed(collection, id, fields = nil, cleared = nil) ⇒ Object



39
40
41
42
43
44
# File 'lib/ddp/server/protocol/data.rb', line 39

def send_changed(collection, id, fields = nil, cleared = nil)
  message = { msg: 'changed', id: id, collection: collection }
  message.merge!(fields: fields) if fields
  message.merge!(cleared: cleared) if cleared
  write_message message
end

#send_moved_before(collection, id, before = nil) ⇒ Object



60
61
62
# File 'lib/ddp/server/protocol/data.rb', line 60

def send_moved_before(collection, id, before = nil)
  write_message msg: 'movedBefore', id: id, collection: collection, before: before
end

#send_nosub(id, error = nil) ⇒ Object



27
28
29
30
31
# File 'lib/ddp/server/protocol/data.rb', line 27

def send_nosub(id, error = nil)
  message = { msg: 'nosub', id: id }
  message.merge!(error: error) if error
  write_message message
end

#send_ready(subs) ⇒ Object



50
51
52
# File 'lib/ddp/server/protocol/data.rb', line 50

def send_ready(subs)
  write_message msg: 'ready', subs: subs
end

#send_removed(collection, id) ⇒ Object



46
47
48
# File 'lib/ddp/server/protocol/data.rb', line 46

def send_removed(collection, id)
  write_message msg: 'removed', collection: collection, id: id
end