module Saasable::Mongoid::SaasDocument

Public Class Methods

active_saas() click to toggle source
# File lib/saasable/mongoid/saas_document.rb, line 34
def self.active_saas
  @saas_document.active_saas
end
included(klass) click to toggle source
# File lib/saasable/mongoid/saas_document.rb, line 6
def self.included(klass)
  if @saas_document && (@saas_document.name != klass.name)
    raise Saasable::Errors::MultipleSaasDocuments, 'you can only have one Saasable::SaasDocument'
  end

  @saas_document = klass

  klass.extend ClassMethods
  klass.send(:include, InstanceMethods)
  klass.class_eval do
    # Fields
    field :hosts, type: Array, default: []

    # Validations
    validates_uniqueness_of :hosts

    # Indexes
    index({hosts: 1}, unique: true)
  end

  klass.instance_variable_set('@_after_activate_chain', [])
  klass.instance_variable_set('@_after_deactivate_chain', [])
end
saas_document() click to toggle source
# File lib/saasable/mongoid/saas_document.rb, line 30
def self.saas_document
  @saas_document
end