Sha256: 7ec78df81d4419efc392e738bcf8442f87235e363d6ab0243bb5b5d6b5c31b0a

Contents?: true

Size: 1.09 KB

Versions: 5

Compression:

Stored size: 1.09 KB

Contents

require 'rails_stdout_logging/rails'

module RailsStdoutLogging
  class Rails2 < Rails

    def self.set_logger
      super
      redefine_rails_logger!
      classes.each do |klass_name|
        begin
          klass = constantize(klass_name)
          klass.logger = ::Rails.logger
        rescue NameError => exception
          puts "WARNING: #{exception.message}"
        end
      end
    end

    def redefine_rails_logger!
      class << ::Rails
        def memoized_heroku_logger
          @logger ||= self.heroku_stdout_logger
        end
        alias_method :rails_default_logger, :logger
        alias_method :logger, :memoized_heroku_logger
      end
    end

    def self.classes
      %w(
        ActiveSupport::Dependencies
        ActiveRecord::Base
        ActionController::Base
        ActionMailer::Base
        ActionView::Base
        ActiveResource::Base
      )
    end

    def self.constantize(klass_name)
      klass_name.split("::").inject(Object) { |parent, child| parent.const_get(child) }
    rescue NameError
      raise NameError, "Unable to find #{klass_name}"
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rails_stdout_logging-0.0.5 lib/rails_stdout_logging/rails2.rb
rails_stdout_logging-0.0.4 lib/rails_stdout_logging/rails2.rb
rails_stdout_logging-0.0.3 lib/rails_stdout_logging/rails2.rb
rails_stdout_logging-0.0.2 lib/rails_stdout_logging/rails2.rb
rails_stdout_logging-0.0.1 lib/rails_stdout_logging/rails2.rb