lib/foreign_key_validation.rb
require "foreign_key_validation/version"
require "foreign_key_validation/errors"
require "foreign_key_validation/collector"
require "foreign_key_validation/filter"
require "foreign_key_validation/validator"
require "foreign_key_validation/model_extension"
require "ostruct"
module ForeignKeyValidation
DEFAULT_CONFIG = {
inject_subclasses: true,
validate_against: :user,
error_message: lambda { |key, reflection_name, object|
"#{key} of #{reflection_name} does not match #{object.class.name.tableize} #{key}."
}
}
class << self
def configure
yield configuration
end
def configuration
@configuration ||= OpenStruct.new(DEFAULT_CONFIG)
end
def reset_configuration
@configuration = nil
end
end
end
ActiveRecord::Base.send :include, ForeignKeyValidation::ModelExtension