Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 7643

Show
Ignore:
Timestamp:
09/27/07 04:50:58 (1 year ago)
Author:
bitsweat
Message:

BufferedLogger#add doesn't modify the message argument. Closes #9702.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/activesupport/CHANGELOG

    r7626 r7643  
    11*SVN* 
     2 
     3* BufferedLogger#add doesn't modify the message argument.  #9702 [eigentone] 
    24 
    35* Added ActiveSupport::BufferedLogger as a duck-typing alternative (albeit with no formatter) to the Ruby Logger, which provides a very nice speed bump (inspired by Ezra's buffered logger) [DHH] 
  • trunk/activesupport/lib/active_support/buffered_logger.rb

    r7634 r7643  
    5353      return if @level > severity 
    5454      message = message || (block && block.call) || progname 
    55       message << "\n" unless message[-1] == ?\n 
     55      # If a newline is nessesary then create a new message end with a new line. 
     56      # Ensures that the original message is not mutated. 
     57      message = "#{message}\n" unless message[-1] == ?\n 
    5658      @buffer << message 
    5759      flush if auto_flushing 
  • trunk/activesupport/test/buffered_logger_test.rb

    r7635 r7643  
    3939    assert evaluated == false   
    4040  end 
     41   
     42  def test_should_not_mutate_message 
     43    message_copy = @message.dup 
     44    @logger.info @message 
     45    assert_equal message_copy, @message 
     46  end 
    4147end