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

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

Instance Method Summary collapse

Instance Method Details

#active_saasObject



68
69
70
# File 'lib/saasable/mongoid/saas_document.rb', line 68

def active_saas
  Thread.current[:saasable_active_saas]
end

#after_activate(*method_names) ⇒ Object



72
73
74
# File 'lib/saasable/mongoid/saas_document.rb', line 72

def after_activate *method_names
  @_after_activate_chain += method_names
end

#after_deactivate(*method_names) ⇒ Object



76
77
78
# File 'lib/saasable/mongoid/saas_document.rb', line 76

def after_deactivate *method_names
  @_after_deactivate_chain += method_names
end

#deactivate_all!Object



48
49
50
51
# File 'lib/saasable/mongoid/saas_document.rb', line 48

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

#find_by_host!(a_host) ⇒ Object



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

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.gsub(/^www\./, '')).to_a
  if possible_saas.empty?
    raise Saasable::Errors::SaasNotFound, "no #{Saasable::Mongoid::SaasDocument.saas_document.name} found for the host: \"#{a_host}\""
  elsif possible_saas.count > 1
    raise Saasable::Errors::MultipleSaasFound, "more then 1 #{Saasable::Mongoid::SaasDocument.saas_document.name} found for the host: \"#{a_host}\""
  else
    return possible_saas.first
  end
end

#remove_after_activate(*method_names) ⇒ Object



80
81
82
# File 'lib/saasable/mongoid/saas_document.rb', line 80

def remove_after_activate *method_names
  @_after_activate_chain -= method_names
end

#remove_after_deactivate(*method_names) ⇒ Object



84
85
86
# File 'lib/saasable/mongoid/saas_document.rb', line 84

def remove_after_deactivate *method_names
  @_after_deactivate_chain -= method_names
end