Class: Chillout::RailsInitializer

Inherits:
Object
  • Object
show all
Defined in:
lib/chillout/railtie.rb

Instance Method Summary collapse

Constructor Details

#initialize(rails_app, chillout_config, rails_logger) ⇒ RailsInitializer

Returns a new instance of RailsInitializer.



24
25
26
27
28
# File 'lib/chillout/railtie.rb', line 24

def initialize(rails_app, chillout_config, rails_logger)
  @rails_app = rails_app
  @chillout_config = chillout_config
  @rails_logger = rails_logger
end

Instance Method Details

#existing_option_keysObject



48
49
50
# File 'lib/chillout/railtie.rb', line 48

def existing_option_keys
  [:port, :hostname, :ssl].select{|key| @chillout_config.has_key?(key)}
end

#optionsObject



40
41
42
# File 'lib/chillout/railtie.rb', line 40

def options
  Hash[options_list].merge(:logger => @rails_logger)
end

#options_listObject



44
45
46
# File 'lib/chillout/railtie.rb', line 44

def options_list
  existing_option_keys.map{|key| [key, @chillout_config[key]]}
end

#startObject



30
31
32
33
34
35
36
37
38
# File 'lib/chillout/railtie.rb', line 30

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
end