module ActivePgLog::ActiveLog

Public Class Methods

create_log_ddl_trigger(clazz) click to toggle source
# File lib/active_pg_log/active_log.rb, line 22
def create_log_ddl_trigger(clazz)
  %(
    drop trigger if exists trigger_log_#{clazz.table_name}_insert_update on #{clazz.table_name} cascade;
    CREATE TRIGGER trigger_log_#{clazz.table_name}_insert_update after insert or update on #{clazz.table_name} for each row execute procedure public.active_pg_loging();
  )
end
included(clazz) click to toggle source
# File lib/active_pg_log/active_log.rb, line 4
def self.included(clazz)
  @active_trigger = ActivePgLog::ActiveTrigger.new

  return if @active_trigger.include?("trigger_log_#{clazz.table_name}_insert_update", clazz.table_name)

  ActiveRecord::Base.connection.execute(create_log_ddl_trigger(clazz))
end

Public Instance Methods

disable_log_ddl_trigger() click to toggle source
# File lib/active_pg_log/active_log.rb, line 12
def disable_log_ddl_trigger
  ActiveRecord::Base.connection.execute("drop trigger if exists trigger_log_#{self.class.table_name}_insert_update on #{self.class.table_name} cascade;")
  nil
end
pg_logs() click to toggle source
# File lib/active_pg_log/active_log.rb, line 17
def pg_logs
  ActivePgLogTable.where(table_name: self.class.table_name)
end