module DigestibleAttributes::Configuration

Constants

DIGEST_ALGORITHMS

Public Instance Methods

default_digest_column() click to toggle source
# File lib/digestible_attributes/configuration.rb, line 24
def default_digest_column
  "#{@@digest_algorithm.downcase}_digest".to_sym
end
digestible_attributes(options = {}) click to toggle source
# File lib/digestible_attributes/configuration.rb, line 14
def digestible_attributes(options = {})
  @@digest_fields = options.fetch(:fields, [])
  @@digest_algorithm = options.fetch(:algorithm, :MD5)
  @@digest_column = options.fetch(:digest_column, default_digest_column)

  validate_configuration!

  include CallbackActions
end
symbolized_columns() click to toggle source
# File lib/digestible_attributes/configuration.rb, line 54
def symbolized_columns
  self.column_names.map(&:to_sym)
end
validate_configuration!() click to toggle source
# File lib/digestible_attributes/configuration.rb, line 28
def validate_configuration!
  validate_digest_fields!
  validate_digest_algorithm!
  validate_digest_column!
end
validate_digest_algorithm!() click to toggle source
# File lib/digestible_attributes/configuration.rb, line 42
def validate_digest_algorithm!
  unless DIGEST_ALGORITHMS.include?(@@digest_algorithm)
    raise Errors::DigestAlgorithmError.new(@@digest_algorithm)
  end
end
validate_digest_column!() click to toggle source
# File lib/digestible_attributes/configuration.rb, line 48
def validate_digest_column!
  unless symbolized_columns.include?(@@digest_column)
    raise Errors::DigestColumnError.new(@@digest_column)
  end
end
validate_digest_fields!() click to toggle source
# File lib/digestible_attributes/configuration.rb, line 34
def validate_digest_fields!
  if @@digest_fields & symbolized_columns != @@digest_fields
    diff = @@digest_fields - symbolized_columns

    raise Errors::DigestFieldError.new(diff)
  end
end