class NoBrainer::Connection
Attributes
orig_uri[RW]
parsed_uri[RW]
Public Class Methods
new(uri)
click to toggle source
# File lib/no_brainer/connection.rb, line 7 def initialize(uri) @orig_uri = uri parse_uri(uri) end
Public Instance Methods
current_db()
click to toggle source
# File lib/no_brainer/connection.rb, line 49 def current_db NoBrainer.current_run_options[:db] || default_db end
default_db()
click to toggle source
# File lib/no_brainer/connection.rb, line 45 def default_db parsed_uri[:db] end
parse_uri(uri)
click to toggle source
# File lib/no_brainer/connection.rb, line 12 def parse_uri(uri) @parsed_uri = begin uri = URI.parse(uri) if uri.scheme != 'rethinkdb' raise NoBrainer::Error::Connection, "Invalid URI. Expecting something like rethinkdb://host:port/database. Got #{uri}" end { :user => uri.user && CGI.unescape(uri.user), :password => uri.password && CGI.unescape(uri.password), :host => uri.host, :port => uri.port || 28015, :db => uri.path.gsub(/^\//, ''), }.tap { |result| raise "No database specified in #{uri}" unless result[:db].present? } end end
raw()
click to toggle source
# File lib/no_brainer/connection.rb, line 35 def raw options = parsed_uri options = options.merge(:ssl => NoBrainer::Config.ssl_options) if NoBrainer::Config.ssl_options @raw ||= RethinkDB::Connection.new(options).tap { NoBrainer.logger.info("Connected to #{uri}") } end
Also aliased as: connect
uri()
click to toggle source
# File lib/no_brainer/connection.rb, line 31 def uri "rethinkdb://#{'****@' if parsed_uri[:password]}#{parsed_uri[:host]}:#{parsed_uri[:port]}/#{parsed_uri[:db]}" end