Sha256: 4c10e4dbe9a1c795b13b9f6a30136ca5b8728ad7e6e39ac3a4d775dc03c752e7

Contents?: true

Size: 907 Bytes

Versions: 12

Compression:

Stored size: 907 Bytes

Contents

module Erector
  class RailsWidget < Widget
    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

require "#{File.dirname(__FILE__)}/rails_widget/helpers"

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
pivotal-erector-0.6.0 lib/erector/rails/extensions/rails_widget.rb
pivotal-erector-0.6.1 lib/erector/rails/extensions/rails_widget.rb
pivotal-erector-0.6.2 lib/erector/rails/extensions/rails_widget.rb
pivotal-erector-0.6.3 lib/erector/rails/extensions/rails_widget.rb
pivotal-erector-0.6.4 lib/erector/rails/extensions/rails_widget.rb
pivotal-erector-0.6.5 lib/erector/rails/extensions/rails_widget.rb
pivotal-erector-0.6.6 lib/erector/rails/extensions/rails_widget.rb
pivotal-erector-0.6.7 lib/erector/rails/extensions/rails_widget.rb
erector-0.6.7 lib/erector/rails/extensions/rails_widget.rb
erector-0.6.3 lib/erector/rails/extensions/rails_widget.rb
erector-0.6.6 lib/erector/rails/extensions/rails_widget.rb
erector-0.6.4 lib/erector/rails/extensions/rails_widget.rb