Module: Bridgetown::ERBCapture

Included in:
Streamlined
Defined in:
bridgetown-core/lib/bridgetown-core/converters/erb_templates.rb

Instance Method Summary collapse

Instance Method Details

#capture(*args) ⇒ Object



99
100
101
102
103
104
105
106
107
108
109
# File 'bridgetown-core/lib/bridgetown-core/converters/erb_templates.rb', line 99

def capture(*args)
  previous_buffer_state = @_erbout
  @_erbout = OutputBuffer.new
  result = yield(*args)
  result = @_erbout.presence || result
  @_erbout = previous_buffer_state
  return result.to_s if result.is_a?(OutputBuffer)

  # TODO: resolve below logic once Active Support patch to `ERB::Util.h` is removed
  result.is_a?(String) ? ERB::Util.h(result) : result
end