Sha256: e94f5f6123f8964c7935b41dff09ffa5578f79ba7a0965a0a6a84b2ea28fc14d
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
module CassandraObject module Validation class RecordInvalidError < StandardError attr_reader :record def initialize(record) @record = record super("Invalid record: #{@record.errors.full_messages.to_sentence}") end def self.raise_error(record) raise new(record) end end extend ActiveSupport::Concern include ActiveModel::Validations included do define_model_callbacks :validation if CassandraObject.old_active_support define_callbacks :validate else define_callbacks :validate, :scope => :name end end module ClassMethods def create!(attributes) returning new(attributes), &:save! end end module InstanceMethods def valid? run_callbacks :validation do super end end def save if valid? super else false end end def save! save || RecordInvalidError.raise_error(self) end if CassandraObject.old_active_support def _run_validate_callbacks run_callbacks :validate end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cassandra_object-0.6.0.pre | lib/cassandra_object/validation.rb |