thoughtbot--shoulda-matchers/spec/support/unit/record_validating_confirmat...

55 lines
995 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