Sha256: bcb6d318d30c814c78f6d2e78a665bcac2b3ca92b8ed76ddbb76c0b3e413601b
Contents?: true
Size: 696 Bytes
Versions: 1
Compression:
Stored size: 696 Bytes
Contents
module RiotMongoid class HasAssociationAssertion < Riot::AssertionMacro register :has_association def evaluate(model, type, field, options = {}) fail_msg = "expected #{model.class.to_s} to have assocation '#{type} :#{field}'" pass_msg = "#{model.class.to_s} has association '#{type} :#{field}'" opt_msg = " with options #{options.inspect}" assoc = model.relations[field.to_s] return fail(fail_msg) if assoc.nil? || assoc.macro != type.to_sym unless options.empty? return fail(fail_msg + opt_msg) unless options.all? { |k, v| assoc.send(k) == v } return pass(pass_msg + opt_msg) end pass pass_msg end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
riot-mongoid-2.1.0 | lib/riot-mongoid/has_association.rb |