class ErgomentumRspec::Matchers::ActiveModel::BeValidFor
Public Class Methods
name()
click to toggle source
ActiveModel
sometimes needs a non nil class name. Because we are using an anonymous class, which have no name by default, we have to override the name method.
# File lib/ergomentum_rspec/matchers/active_model/be_valid_for.rb, line 23 def self.name "SomeClass" end
new(value)
click to toggle source
# File lib/ergomentum_rspec/matchers/active_model/be_valid_for.rb, line 11 def initialize(value) @value = value end
Public Instance Methods
description()
click to toggle source
# File lib/ergomentum_rspec/matchers/active_model/be_valid_for.rb, line 37 def description "'#{@value}' be an valid value" end
failure_message()
click to toggle source
# File lib/ergomentum_rspec/matchers/active_model/be_valid_for.rb, line 33 def failure_message "expect '#{@value}' to be valid" end
matches?(validator)
click to toggle source
# File lib/ergomentum_rspec/matchers/active_model/be_valid_for.rb, line 15 def matches?(validator) model = Class.new do include ::ActiveModel::Model include ::ActiveModel::Attributes # ActiveModel sometimes needs a non nil class name. # Because we are using an anonymous class, which have no name by default, we have to override the name # method. def self.name "SomeClass" end attribute :some_attribute validates :some_attribute, validator end.new(some_attribute: @value) model.valid? && model.errors.empty? end