Sha256: 32002a9009b2a3c1fdd33b05d5e655a27b11e725041ef9f9dbcfae4cf9ae0185
Contents?: true
Size: 1.04 KB
Versions: 2
Compression:
Stored size: 1.04 KB
Contents
module Modelizer module Validations def test_validations_for attribute, *validations @klass ||= name.gsub(/Test$/, "").constantize @model ||= ::Modelizer.underscore @klass.name unless instance_methods.collect { |m| m.to_s }.include? "new_#{@model}" raise "no model template for #{@klass.name}" end # FIX: location in original test file validations.each do |v| test = send "validation_lambda_for_#{v}", @klass, @model, attribute define_method "test_#{attribute}_#{v}", &test end end private def validation_lambda_for_presence klass, model, attribute lambda do assert_invalid attribute, send("new_#{model}", attribute => nil) end end def validation_lambda_for_uniqueness klass, model, attribute lambda do existing = klass.first assert_not_nil existing, "There's at least one #{model} fixture." assert_invalid attribute, send("new_#{model}", attribute => existing.send(attribute)) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
modelizer-2.1.0 | lib/modelizer/validations.rb |
modelizer-2.0.0 | lib/modelizer/validations.rb |