Class: Chronos::Rails::Installer
- Inherits:
-
Object
- Object
- Chronos::Rails::Installer
- Defined in:
- lib/chronos/rails/installer.rb
Overview
Installs Rails middleware and subscribers exactly once per application.
Class Attribute Summary collapse
-
.applications ⇒ Object
readonly
Returns the value of attribute applications.
-
.mutex ⇒ Object
readonly
Returns the value of attribute mutex.
Instance Method Summary collapse
-
#initialize(notifier = Chronos, subscriber = nil) ⇒ Installer
constructor
A new instance of Installer.
- #install(application) ⇒ Object
- #rails_version ⇒ Object
Constructor Details
#initialize(notifier = Chronos, subscriber = nil) ⇒ Installer
Returns a new instance of Installer.
23 24 25 26 |
# File 'lib/chronos/rails/installer.rb', line 23 def initialize(notifier = Chronos, subscriber = nil) @notifier = notifier @subscriber = subscriber || NotificationsSubscriber.new(notifier) end |
Class Attribute Details
.applications ⇒ Object (readonly)
Returns the value of attribute applications.
20 21 22 |
# File 'lib/chronos/rails/installer.rb', line 20 def applications @applications end |
.mutex ⇒ Object (readonly)
Returns the value of attribute mutex.
20 21 22 |
# File 'lib/chronos/rails/installer.rb', line 20 def mutex @mutex end |
Instance Method Details
#install(application) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/chronos/rails/installer.rb', line 28 def install(application) = @notifier.(environment, console?) return false unless [:enabled] self.class.mutex.synchronize do return false if self.class.applications[application.object_id] install_middleware(application, ) @subscriber.install self.class.applications[application.object_id] = true end true rescue StandardError false end |
#rails_version ⇒ Object
44 45 46 |
# File 'lib/chronos/rails/installer.rb', line 44 def rails_version defined?(::Rails) && ::Rails.respond_to?(:version) ? ::Rails.version.to_s : "unknown" end |