Module: Sequel::Plugins::AuditByDay

Defined in:
lib/sequel/plugins/audit_by_day.rb

Defined Under Namespace

Modules: ClassMethods Classes: AuditKindNotFound

Class Method Summary collapse

Class Method Details

.configure(master, opts = {}) ⇒ Object

Raises:

  • (Error)


8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/sequel/plugins/audit_by_day.rb', line 8

def self.configure(master, opts={})
  audit_foreign_key = opts[:foreign_key]
  default_valid_from = opts.fetch(:default_valid_from){ Time.utc(1000) }
  updated_by_regexp = opts.fetch(:updated_by_regexp){ /(.+)_updated_by_(.+)_id/ }
  raise Error, ":foreign_key options is required for audit" unless audit_foreign_key
  raise Error, ":foreign_key column does not exists for audit" unless master.columns.include? audit_foreign_key
  version_columns = {}
  master.version_class.columns.each do |column|
    next unless column.to_s =~ updated_by_regexp
    column_name, column_kind = $1, $2
    version_columns[column_name] ||= {}
    version_columns[column_name][column_kind] = column
  end
  master.instance_eval do
    @audit_foreign_key = audit_foreign_key
    @audit_checked_columns = Set.new version_columns.keys
    @audit_version_columns = version_columns
    @audit_default_valid_from = default_valid_from
  end
end