Sha256: 1eda7471406bb2bb7800110a30d91c2a37e34e3579742b90bcad63772f8ece24

Contents?: true

Size: 1.11 KB

Versions: 28

Compression:

Stored size: 1.11 KB

Contents

require 'active_support'
require 'active_support/concern'

module Fortitude
  class Widget
    module Capturing
      extend ActiveSupport::Concern

      # PUBLIC API
      def capture(&block)
        helpers = @_fortitude_rendering_context.helpers_object
        if helpers && helpers.respond_to?(:capture, true) &&
          [ 0, -1 ].include?(helpers.method(:capture).arity)
          helpers.capture(&block)
        else
          _fortitude_builtin_capture(&block)
        end
      end

      # INTERNAL USE ONLY
      def _fortitude_builtin_capture(&block)
        old_buffer = nil
        new_buffer = nil
        begin
          new_buffer = _fortitude_new_buffer
          old_buffer, @_fortitude_output_buffer_holder.output_buffer = @_fortitude_output_buffer_holder.output_buffer, new_buffer
          _fortitude_new_buffer.force_encoding(old_buffer.encoding) if old_buffer && old_buffer.respond_to?(:encoding)
          block.call
          new_buffer
        ensure
          @_fortitude_output_buffer_holder.output_buffer = old_buffer
        end
      end
      private :_fortitude_builtin_capture
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
fortitude-0.9.6-java lib/fortitude/widget/capturing.rb
fortitude-0.9.6 lib/fortitude/widget/capturing.rb
fortitude-0.9.5-java lib/fortitude/widget/capturing.rb
fortitude-0.9.5 lib/fortitude/widget/capturing.rb
fortitude-0.9.4-java lib/fortitude/widget/capturing.rb
fortitude-0.9.4 lib/fortitude/widget/capturing.rb
fortitude-0.9.3-java lib/fortitude/widget/capturing.rb
fortitude-0.9.3 lib/fortitude/widget/capturing.rb
fortitude-0.9.2-java lib/fortitude/widget/capturing.rb
fortitude-0.9.2 lib/fortitude/widget/capturing.rb
fortitude-0.9.1-java lib/fortitude/widget/capturing.rb
fortitude-0.9.1 lib/fortitude/widget/capturing.rb
fortitude-0.9.0-java lib/fortitude/widget/capturing.rb
fortitude-0.9.0 lib/fortitude/widget/capturing.rb
fortitude-0.0.10-java lib/fortitude/widget/capturing.rb
fortitude-0.0.10 lib/fortitude/widget/capturing.rb
fortitude-0.0.9-java lib/fortitude/widget/capturing.rb
fortitude-0.0.9 lib/fortitude/widget/capturing.rb
fortitude-0.0.7-java lib/fortitude/widget/capturing.rb
fortitude-0.0.7 lib/fortitude/widget/capturing.rb