module Saasable::Mongoid::ScopedDocument

Public Class Methods

included(klass) click to toggle source
# File lib/saasable/mongoid/scoped_document.rb, line 4
def self.included(klass)
  klass.extend ClassMethods
  klass.class_eval do
    # Fields
    field :saas_id, type: BSON::ObjectId, default: -> { Saasable::Mongoid::SaasDocument.active_saas._id }

    # Default scope
    default_scope do
      if Saasable::Mongoid::SaasDocument.active_saas
        where(saas_id: Saasable::Mongoid::SaasDocument.active_saas._id)
      else
        all
      end
    end

    # Indexes
    index(saas_id: 1)
    index({saas_id: 1, _id: 1}, unique: true)

    class << self
      alias_method :index_without_saasable, :index
      alias_method :index, :index_with_saasable
    end
  end
end

Public Instance Methods

saas() click to toggle source
# File lib/saasable/mongoid/scoped_document.rb, line 34
def saas
  @saas ||= Saasable::Mongoid::SaasDocument.saas_document.find(saas_id) if saas_id
end
saas=(a_saas) click to toggle source
# File lib/saasable/mongoid/scoped_document.rb, line 30
def saas=(a_saas)
  self.saas_id = a_saas._id
end