Class: DDP::Server::RethinkDB::API
- Inherits:
-
Object
- Object
- DDP::Server::RethinkDB::API
- Defined in:
- lib/ddp/server/rethinkdb/api.rb
Overview
Helper class that users can extend to implement an API that can be passed as the RPC API parameter to the RethinkDB DDP protocol
Instance Attribute Summary collapse
-
#database_name ⇒ Object
Returns the value of attribute database_name.
Instance Method Summary collapse
- #collection_query(name, *params) ⇒ Object
- #database ⇒ Object
-
#initialize(config) ⇒ API
constructor
A new instance of API.
- #invoke_rpc(method, *params) ⇒ Object
- #new_connection ⇒ Object
- #table(name) ⇒ Object
- #with_connection ⇒ Object
Constructor Details
#initialize(config) ⇒ API
Returns a new instance of API.
10 11 12 13 14 15 16 17 |
# File 'lib/ddp/server/rethinkdb/api.rb', line 10 def initialize(config) @config = config @database_name = config[:database] setup_connection_pool setup_rpc setup_collections end |
Instance Attribute Details
#database_name ⇒ Object
Returns the value of attribute database_name.
8 9 10 |
# File 'lib/ddp/server/rethinkdb/api.rb', line 8 def database_name @database_name end |
Instance Method Details
#collection_query(name, *params) ⇒ Object
24 25 26 27 |
# File 'lib/ddp/server/rethinkdb/api.rb', line 24 def collection_query(name, *params) raise 'No such collection' unless @collections.include? name wrap_query send(name, *params) end |
#database ⇒ Object
29 30 31 |
# File 'lib/ddp/server/rethinkdb/api.rb', line 29 def database ::RethinkDB::RQL.new.db(@database_name) end |
#invoke_rpc(method, *params) ⇒ Object
19 20 21 22 |
# File 'lib/ddp/server/rethinkdb/api.rb', line 19 def invoke_rpc(method, *params) raise 'No such method' unless @rpc_methods.include? method send(method, *params) end |
#new_connection ⇒ Object
43 44 45 46 47 48 |
# File 'lib/ddp/server/rethinkdb/api.rb', line 43 def new_connection ::RethinkDB::Connection.new( host: @config[:host], port: @config[:port] ) end |
#table(name) ⇒ Object
33 34 35 |
# File 'lib/ddp/server/rethinkdb/api.rb', line 33 def table(name) database.table(name) end |
#with_connection ⇒ Object
37 38 39 40 41 |
# File 'lib/ddp/server/rethinkdb/api.rb', line 37 def with_connection @connection_pool.with do |conn| yield conn end end |