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