class Dbee::Providers::ActiveRecordProvider

Provider which leverages ActiveRecord and Arel for generating SQL.

Constants

DEFAULT_COLUMN_PREFIX
DEFAULT_TABLE_PREFIX
VERSION

Attributes

column_alias_maker[R]
readable[R]
table_alias_maker[R]

Public Class Methods

new( readable: true, table_prefix: DEFAULT_TABLE_PREFIX, column_prefix: DEFAULT_COLUMN_PREFIX ) click to toggle source
# File lib/dbee/providers/active_record_provider.rb, line 28
def initialize(
  readable: true,
  table_prefix: DEFAULT_TABLE_PREFIX,
  column_prefix: DEFAULT_COLUMN_PREFIX
)
  @readable           = readable
  @table_alias_maker  = alias_maker(table_prefix)
  @column_alias_maker = alias_maker(column_prefix)
end

Public Instance Methods

sql(schema, query) click to toggle source
# File lib/dbee/providers/active_record_provider.rb, line 38
def sql(schema, query)
  ExpressionBuilder.new(
    schema,
    table_alias_maker,
    column_alias_maker
  ).to_sql(query)
end

Private Instance Methods

alias_maker(prefix) click to toggle source
# File lib/dbee/providers/active_record_provider.rb, line 48
def alias_maker(prefix)
  readable ? SafeAliasMaker.new : ObfuscatedAliasMaker.new(prefix)
end