Sha256: 6edf783fe1788bd143544309eeb1c2f3f430eca65c0a5349c2add6637cb891c1

Contents?: true

Size: 1.11 KB

Versions: 2

Compression:

Stored size: 1.11 KB

Contents

module Remotipart
  # Responder used to automagically wrap any non-xml replies in a text-area
  # as expected by iframe-transport.
  module RenderOverrides
    include ERB::Util

    def self.included(base)
      base.class_eval do
        # Use neither alias_method_chain nor prepend for compatibility
        alias render_without_remotipart render
        alias render render_with_remotipart
      end
    end

    def render_with_remotipart(*args, &block)
      render_return_value = render_without_remotipart(*args, &block)
      if remotipart_submitted?
        textarea_body = response.content_type == 'text/html' ? html_escape(response.body) : response.body
        response.body = %{<script type=\"text/javascript\">try{window.parent.document;}catch(err){document.domain=document.domain;}</script> <textarea data-type=\"#{response.content_type}\" data-status=\"#{response.response_code}\" data-statusText=\"#{response.message}\">#{textarea_body}</textarea>}
        response.content_type = ::Rails.version >= '5' ? Mime[:html] : Mime::HTML
        response_body
      else
        render_return_value
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
remotipart-1.4.2 lib/remotipart/render_overrides.rb
remotipart-1.4.0 lib/remotipart/render_overrides.rb