Module: Saasable::Mongoid::SaasDocument::ClassMethods

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

Instance Method Summary collapse

Instance Method Details

#active_saasObject



70
71
72
# File 'lib/saasable/mongoid/saas_document.rb', line 70

def active_saas
  Thread.current[:saasable_active_saas]
end

#after_activate(*method_names) ⇒ Object



74
75
76
# File 'lib/saasable/mongoid/saas_document.rb', line 74

def after_activate(*method_names)
  @_after_activate_chain += method_names
end

#after_deactivate(*method_names) ⇒ Object



78
79
80
# File 'lib/saasable/mongoid/saas_document.rb', line 78

def after_deactivate(*method_names)
  @_after_deactivate_chain += method_names
end

#deactivate_all!Object



50
51
52
53
54
# File 'lib/saasable/mongoid/saas_document.rb', line 50

def deactivate_all!
  last_active_saas = active_saas
  Thread.current[:saasable_active_saas] = nil
  @_after_deactivate_chain.each { |method_name| last_active_saas.send(method_name) }
end

#find_by_host!(a_host) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/saasable/mongoid/saas_document.rb', line 56

def find_by_host!(a_host)
  if Saasable::Mongoid::SaasDocument.saas_document.nil?
    raise Saasable::Errors::NoSaasDocuments, 'you need to set one Saasable::SaasDocument'
  end

  possible_saas = Saasable::Mongoid::SaasDocument.saas_document.where(hosts: a_host).first
  if possible_saas.nil?
    raise Saasable::Errors::SaasNotFound,
      "no #{Saasable::Mongoid::SaasDocument.saas_document.name} found for the host: \"#{a_host}\""
  end

  possible_saas
end

#remove_after_activate(*method_names) ⇒ Object



82
83
84
# File 'lib/saasable/mongoid/saas_document.rb', line 82

def remove_after_activate(*method_names)
  @_after_activate_chain -= method_names
end

#remove_after_deactivate(*method_names) ⇒ Object



86
87
88
# File 'lib/saasable/mongoid/saas_document.rb', line 86

def remove_after_deactivate(*method_names)
  @_after_deactivate_chain -= method_names
end