Sha256: 93c042425a7e5d5504b125175c67d0d0143d6cfb73853c555b5cf9f163466e0f
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
module MongoMapper module SaveWithValidation def self.included(base) base.class_eval do alias_method_chain :valid?, :callbacks alias_method_chain :save, :validation define_callbacks :before_validation_on_create, :before_validation_on_update, :before_validation, :after_validation, :validate, :validate_on_create, :validate_on_update end end def save! save_with_validation || raise(DocumentNotValid.new(self)) end private def save_with_validation if valid? save_without_validation else false end end def valid_with_callbacks? run_callbacks(:before_validation) if new? run_callbacks(:before_validation_on_create) else run_callbacks(:before_validation_on_update) end run_callbacks(:validate) if new? run_callbacks(:validate_on_create) else run_callbacks(:validate_on_update) end is_valid = valid_without_callbacks? run_callbacks(:after_validation) if is_valid is_valid end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jnunemaker-mongomapper-0.1.2 | lib/mongomapper/save_with_validation.rb |