Module: Saasable::Mongoid::SaasDocument

Defined in:
lib/saasable/mongoid/saas_document.rb

Defined Under Namespace

Modules: ClassMethods, InstanceMethods

Class Method Summary collapse

Class Method Details

.active_saasObject



34
35
36
# File 'lib/saasable/mongoid/saas_document.rb', line 34

def self.active_saas
  @saas_document.active_saas
end

.included(klass) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 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_documentObject



30
31
32
# File 'lib/saasable/mongoid/saas_document.rb', line 30

def self.saas_document
  @saas_document
end