Sha256: 3356e5746f1fa72dfde87bfaf1add0d6ab78fa3b09d4cd9b961295eaa65d979c

Contents?: true

Size: 883 Bytes

Versions: 2

Compression:

Stored size: 883 Bytes

Contents

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

module Footnotes
  module Notes
    class LogNote < AbstractNote

      def self.logs
        @@logs ||= []
      end

      def self.log(message)
        logs << message# unless message =~ /SQL|SELECT/
      end

      def self.clear_logs
        # clear the logs for the next request
        old_logs, @@logs = @@logs, []
        return old_logs
      end

      def initialize(controller)
        @controller = controller
      end

      def title
        "Log (#{@num})"
      end

      def content
        @num = self.class.logs.size

        self.class.clear_logs.map do |l|
          escape(l.gsub(/\e\[.+?m/, ''))
        end.join('<br />')
      end

    end
  end

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

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rails3-footnotes-4.0.0.pre.10 lib/rails-footnotes/notes/log_note.rb
rails3-footnotes-4.0.0.pre.9 lib/rails-footnotes/notes/log_note.rb