1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Reset @dirty to false when slicing an instance of SafeBuffer

This commit is contained in:
Brian Cardarella 2011-07-29 13:06:45 -04:00
parent 270fa63e9b
commit 6ef1079e0e
2 changed files with 12 additions and 0 deletions

View file

@ -86,6 +86,12 @@ module ActiveSupport #:nodoc:
end
end
def[](*args)
new_safe_buffer = super
new_safe_buffer.instance_eval { @dirty = false }
new_safe_buffer
end
def safe_concat(value)
raise SafeConcatError if dirty?
original_concat(value)

View file

@ -106,4 +106,10 @@ class SafeBufferTest < ActiveSupport::TestCase
test "should not fail if the returned object is not a string" do
assert_kind_of NilClass, @buffer.slice("chipchop")
end
test "Should initialize @dirty to false for new instance when sliced" do
dirty = @buffer[0,0].send(:dirty?)
assert_not_nil dirty
assert !dirty
end
end