lib/chillout/railtie.rb in chillout-0.5.0 vs lib/chillout/railtie.rb in chillout-0.5.1
- old
+ new
@@ -1,26 +1,49 @@
require 'chillout/creation_listener'
module Chillout
class Railtie < Rails::Railtie
config.chillout = ActiveSupport::OrderedOptions.new
- initializer "chillout.creations_listener_initialization" do |app|
- if !app.config.chillout.empty?
- existing_option_keys = [:port, :hostname, :ssl].select{|key| app.config.chillout.has_key?(key)}
- options_list = existing_option_keys.map{|key| [key, app.config.chillout[key]]}
- options = Hash[options_list].merge(:logger => Rails.logger)
+ initializer "chillout.creations_listener_initialization" do |rails_app|
+ chillout_config = rails_app.config.chillout
+ return if chillout_config.empty?
+ RailsInitializer.new(rails_app, chillout_config, Rails.logger).start
+ end
- client = Client.new(app.config.chillout[:secret], options)
+ rake_tasks do
+ load "chillout/tasks.rb"
+ end
+ end
- ActiveRecord::Base.extend(CreationListener)
+ class RailsInitializer
+
+ def initialize(rails_app, chillout_config, rails_logger)
+ @rails_app = rails_app
+ @chillout_config = chillout_config
+ @rails_logger = rails_logger
+ end
- app.middleware.use Middleware::CreationsMonitor, client
+ def start
+ @rails_logger.info "[Chillout] railtie initializing"
+ client = Client.new(@chillout_config[:secret], options)
+ ActiveRecord::Base.extend(CreationListener)
+ @rails_logger.info "[Chillout] creation listener attached"
+ @rails_app.middleware.use Middleware::CreationsMonitor, client
+ @rails_logger.info "[Chillout] creation monitor enabled"
+ client.start_worker
+ @rails_logger.info "[Chillout] worker started"
+ end
- client.start_worker
- end
+ def options
+ Hash[options_list].merge(:logger => @rails_logger)
end
- rake_tasks do
- load "chillout/tasks.rb"
+ def options_list
+ existing_option_keys.map{|key| [key, @chillout_config[key]]}
end
+
+ def existing_option_keys
+ [:port, :hostname, :ssl].select{|key| @chillout_config.has_key?(key)}
+ end
+
end
end