class DDP::Server::API
Helper class that users can extend to implement an API
that can be passed as the RPC API
parameter to the RethinkDB DDP
protocol
Public Class Methods
new()
click to toggle source
# File lib/ddp/server/api.rb, line 6 def initialize setup_rpc setup_collections end
Public Instance Methods
collection_query(name, *params)
click to toggle source
# File lib/ddp/server/api.rb, line 16 def collection_query(name, *params) raise 'No such collection' unless @collections.include? name wrap_query(send(name, *params)) end
invoke_rpc(method, *params)
click to toggle source
# File lib/ddp/server/api.rb, line 11 def invoke_rpc(method, *params) raise 'No such method' unless @rpc_methods.include? method send(method, *params) end
wrap_query(query)
click to toggle source
Implementors must override wrap_query. The argument is a query that is to be executed the result should be a proc that yields data values to its block parameter.
# File lib/ddp/server/api.rb, line 23 def wrap_query(query) raise 'implement wrap query' end
Private Instance Methods
setup_collections()
click to toggle source
# File lib/ddp/server/api.rb, line 35 def setup_collections collections_module = self.class.const_get :Collections @collections = collections_module.instance_methods.map(&:to_s) singleton_class.include collections_module end
setup_rpc()
click to toggle source
# File lib/ddp/server/api.rb, line 29 def setup_rpc rpc_module = self.class.const_get :RPC @rpc_methods = rpc_module.instance_methods.map(&:to_s) singleton_class.include rpc_module end