Sha256: b96d7b7b8c3691b069b35fbbe5e0af53c4450654cfac28c247093ca05a21797d

Contents?: true

Size: 1.37 KB

Versions: 6

Compression:

Stored size: 1.37 KB

Contents

module Librato
  module Rails
    class Railtie < ::Rails::Railtie

      # don't have any custom http vars anymore, check if hostname is UUID
      on_heroku = Socket.gethostname =~ /[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/i

      # make configuration proxy for config inside Rails
      config.librato_rails = Configuration.new

      # set up tracker
      tracker = Tracker.new(config.librato_rails)
      config.librato_rails.tracker = tracker
      Librato.register_tracker(tracker)

      initializer 'librato_rails.setup' do |app|

        ActiveSupport.on_load :action_controller do
          extend Librato::Rails::Helpers::Controller
        end

        unless ::Rails.env.test?
          # set up logging; heroku needs logging to STDOUT
          if on_heroku
            logger = Logger.new(STDOUT)
            logger.level = Logger::INFO
          else
            logger = ::Rails.logger
          end
          config.librato_rails.log_target = logger
          tracker.log(:debug) { "config: #{config.librato_rails.dump}" }

          if tracker.should_start?
            tracker.log :info, "starting up (pid #{$$}, using #{config.librato_rails.config_by})..."
            app.middleware.insert(0, Librato::Rack, :config => config.librato_rails)
            tracker.check_worker if config.librato_rails.autorun
          end
        end

      end

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
librato-rails-1.1.0 lib/librato/rails/railtie.rb
librato-rails-1.0.0 lib/librato/rails/railtie.rb
librato-rails-0.12.0 lib/librato/rails/railtie.rb
librato-rails-0.12.0.beta lib/librato/rails/railtie.rb
librato-rails-0.11.1 lib/librato/rails/railtie.rb
librato-rails-0.11.0 lib/librato/rails/railtie.rb