class Shoulda::Matchers::ActiveModel::ValidationMatcher::BuildDescription
@private
def self.call(matcher, main_description)
def self.call(matcher, main_description) new(matcher, main_description).call end
def call
def call if description_clauses_for_qualifiers.any? "#{main_description}#{clause_for_allow_blank_or_nil},"\ " #{description_clauses_for_qualifiers.to_sentence}" else main_description + clause_for_allow_blank_or_nil end end
def clause_for_allow_blank_or_nil
def clause_for_allow_blank_or_nil if matcher.try(:expects_to_allow_blank?) ' as long as it is not blank' elsif matcher.try(:expects_to_allow_nil?) ' as long as it is not nil' else '' end end
def description_clauses_for_qualifiers
def description_clauses_for_qualifiers description_clauses = [] if matcher.try(:expects_strict?) description_clauses << if matcher.try(:expects_custom_validation_message?) 'raising a validation exception with a custom message on failure' else 'raising a validation exception on failure' end elsif matcher.try(:expects_custom_validation_message?) description_clauses << 'producing a custom validation error on failure' end description_clauses end
def initialize(matcher, main_description)
def initialize(matcher, main_description) @matcher = matcher @main_description = main_description end