Sha256: f5cc84f46a8de66aa7c2b2770c8ae6c98afd37e13d327c503ad009c1046165f0

Contents?: true

Size: 847 Bytes

Versions: 1

Compression:

Stored size: 847 Bytes

Contents

module Erector
  Widget.class_eval do
    def output
      process_output_buffer || @output
    end

    def capture_with_helpers(&block)
      helpers ? helpers.capture(&block) : capture_without_helpers(&block)
    end
    
    alias_method_chain :capture, :helpers

    # This is here to force #helpers.capture to return the output
    def __in_erb_template; end

    private

    def process_output_buffer
      if helpers.respond_to?(:output_buffer)
        buffer = helpers.output_buffer
        buffer.is_a?(String) ? buffer : handle_rjs_buffer
      else
        nil
      end
    end

    def handle_rjs_buffer
      returning buffer = helpers.output_buffer.dup.to_s do
        helpers.output_buffer.clear
        helpers.with_output_buffer(buffer) do
          buffer << helpers.output_buffer.to_s
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pivotal-erector-0.5.1 lib/erector/rails/extensions/widget/2.2.0/widget.rb