Module: Excursion::Pool
- Defined in:
- lib/excursion/pool.rb,
lib/excursion/pool/application.rb
Defined Under Namespace
Classes: Application
Constant Summary collapse
- @@applications =
{}
Class Method Summary collapse
- .application(name) ⇒ Object
- .datasource ⇒ Object
- .register_application(app) ⇒ Object
- .remove_application(app) ⇒ Object
Class Method Details
.application(name) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/excursion/pool.rb', line 9 def self.application(name) return @@applications[name] if @@applications.has_key?(name) app_yaml = datasource.get(name) @@applications[name] = Application.from_cache(app_yaml) unless app_yaml.nil? end |
.datasource ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/excursion/pool.rb', line 30 def self.datasource raise NoDatasourceError, "You must configure excursion with a datasource." if Excursion.configuration.datasource.nil? require "excursion/datasources/#{Excursion.configuration.datasource.to_s}" @@datasource ||= "Excursion::Datasources::#{Excursion.configuration.datasource.to_s.camelize}".constantize.new #rescue NoDatasourceError => e #raise e rescue StandardError => e raise e #raise InvalidDatasourceError, "Could not initialize your datasource. Make sure you have properly configured it" end |
.register_application(app) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/excursion/pool.rb', line 16 def self.register_application(app) name = app.class.name.underscore.split("/").first config = {name: name, default_url_options: Excursion.configuration.} @@applications[name] = Application.new(config, app.routes.named_routes) datasource.set(name, @@applications[name].to_cache) end |
.remove_application(app) ⇒ Object
24 25 26 27 28 |
# File 'lib/excursion/pool.rb', line 24 def self.remove_application(app) name = app.class.name.underscore.split("/").first datasource.delete(name) @@applications.delete(name) end |