Sha256: 5c31a1870cbdd417999f1c26550efe08cc81edc65e0afc0715722f84be253214
Contents?: true
Size: 754 Bytes
Versions: 1
Compression:
Stored size: 754 Bytes
Contents
require 'validation_matcher/version' require 'rspec/expectations' module ValidationMatcher RSpec::Matchers.define :validate do |*expected| attr_reader :expected_attribute, :expected_options, :expected_validator chain(:of) { |field| @expected_attribute = field } chain(:with) { |hash| @expected_options = hash } match do |actual| @expected_options ||= {} @expected_validator = expected.first validator? end def attribute_validators expected_attribute ? actual.class.validators_on(expected_attribute) : [] end def validator? attribute_validators.any? do |validator| validator.kind == expected_validator && validator.options == expected_options end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
validation_matcher-3.1.0 | lib/validation_matcher.rb |