class AuditTables::ChangeAuditTable

Attributes

audit_column[RW]

Public Instance Methods

audit_changes() click to toggle source
# File lib/audit_tables/change_audit_table.rb, line 6
def audit_changes
  columns(audit_table_name).each do |audit_column|
    @audit_column = audit_column

    column_exists?(table_name, audit_column.name) ? change_attribute : remove_attribute
  end
end
change_attribute() click to toggle source
# File lib/audit_tables/change_audit_table.rb, line 14
def change_attribute
  change_column audit_table_name, column_name, column_type, properties_curator if properties_curator.count.positive?
end
execute() click to toggle source
# File lib/audit_tables/change_audit_table.rb, line 18
def execute
  audit_columns
  audit_changes
end
find_column(column) click to toggle source
# File lib/audit_tables/change_audit_table.rb, line 23
def find_column(column)
  columns(table_name).each { |col| @column = col if column.name == col.name }
end
properties_curator() click to toggle source

rubocop:disable Metrics/AbcSize:

# File lib/audit_tables/change_audit_table.rb, line 28
def properties_curator
  elements = {}
  find_column(audit_column)

  elements[:limit] = limit unless audit_column.limit == limit
  elements[:precision] = precision unless audit_column.precision == precision
  elements[:scale] = scale unless audit_column.scale == scale
  elements[:null] = null unless audit_column.null == null
  elements[:default] = default unless audit_column.default == default

  elements
end
remove_attribute() click to toggle source

rubocop:enable Metrics/AbcSize:

# File lib/audit_tables/change_audit_table.rb, line 42
def remove_attribute
  remove_column audit_table_name, audit_column.name unless audit_column.name.include? 'audit'
end