Module: Saasable::Mongoid::SaasDocument::ClassMethods
- Defined in:
- lib/saasable/mongoid/saas_document.rb
Instance Method Summary collapse
- #active_saas ⇒ Object
- #after_activate(*method_names) ⇒ Object
- #after_deactivate(*method_names) ⇒ Object
- #deactivate_all! ⇒ Object
- #find_by_host!(a_host) ⇒ Object
- #remove_after_activate(*method_names) ⇒ Object
- #remove_after_deactivate(*method_names) ⇒ Object
Instance Method Details
#active_saas ⇒ Object
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 |