tpitale/staccato-rails

View on GitHub
lib/staccato/railtie.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Staccato
  class Railtie < Rails::Railtie
    config.before_configuration do |app|
      app.config.staccato = ActiveSupport::OrderedOptions.new

      # set defaults
      app.config.staccato.timing = true
      app.config.staccato.pageviews = true
      app.config.staccato.pageview_prefix = ""
      app.config.staccato.exceptions = false
    end

    initializer "staccato.controller_extension" do
      track_exceptions = config.staccato.exceptions

      ActiveSupport.on_load(:action_controller) do
        include Staccato::SessionTracking

        include Staccato::ExceptionTracking if track_exceptions
      end
    end

    initializer "staccato.configure_subscribers" do
      if config.staccato.timing
        ActiveSupport::Notifications.subscribe('process_action.action_controller', Staccato::Subscribers::Timing)
      end

      if config.staccato.pageviews
        ActiveSupport::Notifications.subscribe('process_action.action_controller', Staccato::Subscribers::Page)
      end
    end
  end
end