lib/haml/helpers/action_view_mods.rb in haml-4.0.7 vs lib/haml/helpers/action_view_mods.rb in haml-4.1.0.alpha.2

- old
+ new

@@ -39,12 +39,19 @@ module CaptureHelper def capture_with_haml(*args, &block) if Haml::Helpers.block_is_haml?(block) #double assignment is to avoid warnings _hamlout = _hamlout = eval('_hamlout', block.binding) # Necessary since capture_haml checks _hamlout - - str = capture_haml(*args, &block) - + value = nil + buffer = capture_haml(*args) { value = yield(*args) } + str = + if !buffer.empty? + buffer + elsif value.is_a?(String) + value + else + nil + end # NonCattingString is present in Rails less than 3.1.0. When support # for 3.0 is dropped, this can be removed. return ActionView::NonConcattingString.new(str) if str && defined?(ActionView::NonConcattingString) return str else \ No newline at end of file