55 lines
994 B
Ruby
55 lines
994 B
Ruby
require_relative 'helpers/model_builder'
|
|
|
|
module UnitTests
|
|
class RecordValidatingConfirmationBuilder
|
|
include ModelBuilder
|
|
|
|
def initialize(options)
|
|
@options = options
|
|
end
|
|
|
|
def model
|
|
@_model ||= create_model
|
|
end
|
|
|
|
def model_name
|
|
options.fetch(:model_name, 'Example')
|
|
end
|
|
|
|
def record
|
|
model.new
|
|
end
|
|
|
|
def message=(message)
|
|
options[:message] = message
|
|
end
|
|
|
|
def attribute_to_confirm
|
|
options.fetch(:attribute, :attribute_to_confirm)
|
|
end
|
|
|
|
def confirmation_attribute
|
|
options.fetch(
|
|
:confirmation_attribute,
|
|
:"#{attribute_to_confirm}_confirmation"
|
|
)
|
|
end
|
|
|
|
def attribute_that_receives_error
|
|
confirmation_attribute
|
|
end
|
|
|
|
protected
|
|
|
|
attr_reader :options
|
|
|
|
private
|
|
|
|
def create_model
|
|
define_model(model_name, attribute_to_confirm => :string) do |model|
|
|
model.validates_confirmation_of(attribute_to_confirm, options)
|
|
end
|
|
end
|
|
end
|
|
end
|