Merge pull request #10600 from aditya-kapoor/code_refactor

Removed Class Eval and used define_method instead for the SafeBuffer
This commit is contained in:
Rafael Mendonça França 2013-05-14 11:39:18 -07:00
commit 8ce3c1e5dd

@ -171,17 +171,15 @@ def encode_with(coder)
end
UNSAFE_STRING_METHODS.each do |unsafe_method|
if 'String'.respond_to?(unsafe_method)
class_eval <<-EOT, __FILE__, __LINE__ + 1
def #{unsafe_method}(*args, &block) # def capitalize(*args, &block)
to_str.#{unsafe_method}(*args, &block) # to_str.capitalize(*args, &block)
end # end
def #{unsafe_method}!(*args) # def capitalize!(*args)
@html_safe = false # @html_safe = false
super # super
end # end
EOT
if String.new.respond_to?(unsafe_method)
define_method(unsafe_method) do |*args, &block|
to_str.send(unsafe_method, *args, &block)
end
define_method("#{unsafe_method}!") do |*args|
@html_safe = false
super(*args)
end
end
end
end