Sha256: 9a70b7dbab6228e2906a77143efb04a3619c6a90411e5bb44b1bfa4611c0463f

Contents?: true

Size: 998 Bytes

Versions: 4

Compression:

Stored size: 998 Bytes

Contents

require "#{File.dirname(__FILE__)}/abstract_note"

module Footnotes
  module Notes
    class LogNote < AbstractNote
      @@log = []
      
      def self.log(message)
        @@log << message
      end
      
      def initialize(controller)
        @controller = controller
      end

      def title
        "Log (#{log.count("\n")})"
      end

      def content
        escape(log.gsub(/\e\[.+?m/, '')).gsub("\n", '<br />')
      end
      
      def log
        unless @log
          @log = @@log.join('')
          @@log = []
          if rindex = @log.rindex('Processing '+@controller.controller_class_name+'#'+@controller.action_name)
            @log = @log[rindex..-1]
          end
        end
        @log
      end

      module LoggingExtensions
        def add(*args, &block)
          logged_message = super
          Footnotes::Notes::LogNote.log(logged_message)
          logged_message
        end
      end
      
      Rails.logger.extend LoggingExtensions
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails-footnotes-3.6.7 lib/rails-footnotes/notes/log_note.rb
rails-footnotes-3.6.6 lib/rails-footnotes/notes/log_note.rb
rails-footnotes-3.6.5 lib/rails-footnotes/notes/log_note.rb
rails-footnotes-3.6.4 lib/rails-footnotes/notes/log_note.rb