class DbFuel::Library::Dbee::Base

Common code shared between all Dbee subclasses.

Attributes

debug[R]
model[R]
provider[R]
query[R]

Public Class Methods

new( name: '', model: {}, query: {}, register: Burner::DEFAULT_REGISTER, debug: false ) click to toggle source

Arguments:

  • model: Dbee Model configuration

  • query: Dbee Query configuration

  • register: Name of the register to use for gathering the IN clause values and where

    to store the resulting recordset.
Calls superclass method
# File lib/db_fuel/library/dbee/base.rb, line 25
def initialize(
  name: '',
  model: {},
  query: {},
  register: Burner::DEFAULT_REGISTER,
  debug: false
)
  super(name: name, register: register)

  @model    = ::Dbee::Model.make(model)
  @provider = ::Dbee::Providers::ActiveRecordProvider.new
  @query    = ::Dbee::Query.make(query)
  @debug    = debug || false

  freeze
end

Protected Instance Methods

debug_detail(output, message) click to toggle source
# File lib/db_fuel/library/dbee/base.rb, line 54
def debug_detail(output, message)
  return unless debug

  output.detail(message)
end
execute(sql) click to toggle source
# File lib/db_fuel/library/dbee/base.rb, line 44
def execute(sql)
  ::ActiveRecord::Base.connection.exec_query(sql).to_a
end
load_register(records, output, payload) click to toggle source
# File lib/db_fuel/library/dbee/base.rb, line 48
def load_register(records, output, payload)
  output.detail("Loading #{records.length} record(s) into #{register}")

  payload[register] = records
end