module DbObfuscation::Util::Trigger

Public Instance Methods

disable(table) click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 22
def disable(table)
  table == :all ? disable_triggers : disable_trigger(table)
end
drop(table) click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 18
def drop(table)
  table == :all ? drop_triggers : drop_trigger(table)
end
enable(table) click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 26
def enable(table)
  table == :all ? enable_triggers : enable_trigger(table)
end
exists?(table) click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 30
def exists?(table)
  tables.include?(table.to_s)
end
tables() click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 7
      def tables
        query = <<-sql
            SELECT tables.relname as table_name
            FROM pg_trigger triggers, pg_class tables
            WHERE triggers.tgrelid = tables.oid
            AND tables.relname !~ '^pg_'
            AND triggers.tgname LIKE '#{prefix}%'
        sql
        DbObfuscation::DB[query].map(:table_name)
      end

Private Instance Methods

disable_trigger(table) click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 41
      def disable_trigger(table)
        DbObfuscation::DB.run <<-sql
          ALTER TABLE #{table}
          DISABLE TRIGGER #{name(table)}
        sql
      end
disable_triggers() click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 35
def disable_triggers
  tables.each do |table|
    disable_trigger(table)
  end
end
drop_trigger(table) click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 67
      def drop_trigger(table)
        DbObfuscation::DB.run <<-sql
          DROP TRIGGER #{name(table)}
          ON #{table}
        sql
      end
drop_triggers() click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 61
def drop_triggers
  tables.each do |table|
    drop_trigger(table)
  end
end
enable_trigger(table) click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 54
      def enable_trigger(table)
        DbObfuscation::DB.run <<-sql
          ALTER TABLE #{table}
          ENABLE TRIGGER #{name(table)}
        sql
      end
enable_triggers() click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 48
def enable_triggers
  tables.each do |table|
    enable_trigger(table)
  end
end
name(table) click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 78
def name(table)
  "#{prefix}#{table}"
end
prefix() click to toggle source
# File lib/db_obfuscation/util/trigger.rb, line 74
def prefix
  'audit_'
end