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

connect()
Alias for: raw
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