Sha256: ea81bcca3e0781db54172a52d8795950d095012a95df32e043e8d6502398d250

Contents?: true

Size: 1.26 KB

Versions: 3

Compression:

Stored size: 1.26 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)

      unless ::Rails.env.test?

        initializer 'librato_rails.setup' do |app|
          # 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

3 entries across 3 versions & 1 rubygems

Version Path
librato-rails-0.10.3 lib/librato/rails/railtie.rb
librato-rails-0.10.2 lib/librato/rails/railtie.rb
librato-rails-0.10.1 lib/librato/rails/railtie.rb