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.



36
37
38
39
40
# File 'lib/chillout/railtie.rb', line 36

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

Instance Method Details

#after_eager_loadObject



65
66
67
68
# File 'lib/chillout/railtie.rb', line 65

def after_eager_load
  state_machine = Integrations::StateMachine.new
  state_machine.enable(Chillout.client) if state_machine.available?
end

#start(listeners_injector = ListenerInjector.new) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/chillout/railtie.rb', line 42

def start(listeners_injector = ListenerInjector.new)
  listeners_injector.logger = @rails_logger

  @rails_logger.info "[Chillout] Railtie initializing"
  config = build_config(options)
  client = Client.new(config)
  if config.creations_tracking
    listeners_injector.inject!
    @rails_logger.info "[Chillout] Creation monitor enabled"
  end
  @rails_app.middleware.use Middleware::CreationsMonitor, client

  sidekiq = Integrations::Sidekiq.new
  sidekiq.enable(client) if sidekiq.available?

  if config.requests_tracking
    @rails_logger.info "[Chillout] Requests monitor enabled"
    Subscribers::ActionControllerNotifications.new.enable(client)
  end
  client.start
  Chillout.client = client
end