module Fabes::ConnectionHandling

Public Class Methods

redis_connection(db) click to toggle source
# File lib/fabes/connection_adapters/redis_adapter.rb, line 3
def self.redis_connection(db)
  require 'redis'
  redis = ::Redis.new db
  ConnectionAdapters::RedisAdapter.new redis
end

Public Instance Methods

connection_url_to_hash(url) click to toggle source

from github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/connection_specification.rb#L65

# File lib/fabes/connection_adapters/abstract_adapter.rb, line 16
def connection_url_to_hash(url)
  url ||= ''
  uri = URI.parse url
  spec = {
    host:     uri.host,
    port:     uri.port,
    adapter:  uri.scheme,
    username: uri.user,
    password: uri.password,
    database: uri.path.sub(%r{^/}, '')
  }
  spec.reject! {|_, value| !value}
  {adapter: 'redis'}.merge spec
end
establish_connection(db) click to toggle source
# File lib/fabes/connection_adapters/abstract_adapter.rb, line 6
def establish_connection(db)
  database = connection_url_to_hash(db)
  adapter = database.delete :adapter
  adapter_method = "#{adapter}_connection"
  send adapter_method, database
rescue
  raise "Could not find #{adapter} adapter!"
end