class DbFuel::Library::ActiveRecord::Base

This job can take the objects in a register and insert them into a database table.

Expected Payload input: array of objects Payload output: array of objects.

Constants

CREATED_AT
NOW_TYPE
UPDATED_AT

Attributes

attribute_renderers[R]
attribute_renderers_set[R]
db_provider[R]
debug[R]
keys_register[R]
resolver[R]

Public Class Methods

new( table_name:, name: '', attributes: [], debug: false, keys_register: nil, register: Burner::DEFAULT_REGISTER, separator: '' ) click to toggle source
Calls superclass method
# File lib/db_fuel/library/active_record/base.rb, line 29
def initialize(
  table_name:,
  name: '',
  attributes: [],
  debug: false,
  keys_register: nil,
  register: Burner::DEFAULT_REGISTER,
  separator: ''
)
  super(name: name, register: register)

  @keys_register           = keys_register.to_s
  @resolver                = Objectable.resolver(separator: separator)
  @attribute_renderers_set = Modeling::AttributeRendererSet.new(resolver: resolver,
                                                                attributes: attributes)
  @db_provider = DbProvider.new(table_name)
  @debug = debug || false
end

Protected Instance Methods

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

  output.detail(message)
end
resolve_key_set(output, payload) click to toggle source
# File lib/db_fuel/library/active_record/base.rb, line 56
def resolve_key_set(output, payload)
  return Set.new if keys_register.empty?

  keys = array(payload[keys_register]).map(&:to_s).to_set

  output.detail("Limiting to only keys: #{keys.to_a.join(', ')}") if keys.any?

  keys
end