Class: Redwood::Server

Inherits:
EM::P::RedwoodServer
  • Object
show all
Defined in:
lib/sup/server.rb

Instance Method Summary collapse

Constructor Details

#initialize(index) ⇒ Server

Returns a new instance of Server.



6
7
8
9
# File 'lib/sup/server.rb', line 6

def initialize index
  super
  @index = index
end

Instance Method Details

#receive_message(type, tag, params) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/sup/server.rb', line 11

def receive_message type, tag, params
  if respond_to? :"request_#{type}"
    send :"request_#{type}", tag, params
  else
    send_message 'error', tag, 'description' => "invalid request type #{type.inspect}"
  end
end

#request_add(tag, a) ⇒ Object



39
40
41
42
# File 'lib/sup/server.rb', line 39

def request_add tag, a
  add a['raw'], a['labels']
  send_message 'done', tag
end

#request_count(tag, a) ⇒ Object



27
28
29
30
31
# File 'lib/sup/server.rb', line 27

def request_count tag, a
  q = @index.parse_query a['query']
  c = count q
  send_message 'count', tag, 'count' => c
end

#request_label(tag, a) ⇒ Object



33
34
35
36
37
# File 'lib/sup/server.rb', line 33

def request_label tag, a
  q = @index.parse_query a['query']
  label q, a['add'], a['remove']
  send_message 'done', tag
end

#request_query(tag, a) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/sup/server.rb', line 19

def request_query tag, a
  q = @index.parse_query a['query']
  query q, a['offset'], a['limit'], a['raw'] do |r|
    send_message 'message', tag, r
  end
  send_message 'done', tag
end

#request_thread(tag, a) ⇒ Object



44
45
46
47
48
49
# File 'lib/sup/server.rb', line 44

def request_thread tag, a
  thread a['message_id'], a['raw'] do |r|
    send_message 'message', tag, r
  end
  send_message 'done', tag
end