Sha256: 51e6537291008ca379bcc11c10230d5c812a2c6dfd05d7dc91fa3e08d58f6e82

Contents?: true

Size: 733 Bytes

Versions: 1

Compression:

Stored size: 733 Bytes

Contents

# Mixin module for all model classes.
#
module Model
  extend ActiveSupport::Concern

  included do
    include Mongoid::Document

    # Finds document by id.
    # Raises error if document is not found.
    #
    def self.find!( *args )
      raise_not_found_error_was = Mongoid.raise_not_found_error
      begin
        Mongoid.raise_not_found_error = true
        self.find *args
      ensure
        Mongoid.raise_not_found_error = raise_not_found_error_was
      end
    end

  end

  module NonPersistent
    extend ActiveSupport::Concern
    included do
      include Mongoid::Document
      before_save do
        raise "Attempt to save non-persistent model"
      end
    end
  end # module NonPersistent

end # module Model

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aerogel-core-1.3.0 lib/aerogel/core/db/model.rb