module Grantinee::Engine

Constants

SUPPORTED_ENGINES
WHITELISTED_KINDS

Public Class Methods

detect_active_record_connection!() click to toggle source
# File lib/grantinee/engine.rb, line 27
def detect_active_record_connection!
  return unless defined?(ActiveRecord::Base)

  configure_for_active_record(ActiveRecord::Base.connection_config)
end
for(engine) click to toggle source

Get appropriate engine class for the engine name

# File lib/grantinee/engine.rb, line 11
def for(engine)
  logger.debug "Using engine: #{engine}"
  unless SUPPORTED_ENGINES.include?(engine.to_s)
    raise "Engine '#{engine}' is not supported, supported engines: #{SUPPORTED_ENGINES}"
  end

  case engine.to_s
  when 'mysql'
    require 'grantinee/engine/mysql'
    Mysql.new
  when 'postgresql'
    require 'grantinee/engine/postgresql'
    Postgresql.new
  end
end

Private Class Methods

configure_for_active_record(ar_config) click to toggle source
# File lib/grantinee/engine.rb, line 39
def configure_for_active_record(ar_config)
  if ar_config[:url]
    configure_for_active_record_url(ar_config)
  else
    configure_for_active_record_fields(ar_config)
  end

  Grantinee.configuration.engine = case ar_config[:adapter]
  when 'mysql', 'mysql2'
    :mysql
  when 'postgresql', 'pg'
    :postgresql
  end
end
configure_for_active_record_fields(ar_config) click to toggle source
# File lib/grantinee/engine.rb, line 58
def configure_for_active_record_fields(ar_config)
  Grantinee.configuration.username = ar_config[:username]
  Grantinee.configuration.password = ar_config[:password]
  Grantinee.configuration.hostname = ar_config[:host]
  Grantinee.configuration.port     = ar_config[:port]
  Grantinee.configuration.database = ar_config[:database]
end
configure_for_active_record_url(ar_config) click to toggle source
# File lib/grantinee/engine.rb, line 54
def configure_for_active_record_url(ar_config)
  Grantinee.configuration.url = ar_config[:url]
end
logger() click to toggle source
# File lib/grantinee/engine.rb, line 35
def logger
  Grantinee.logger
end