Sha256: 11dbfc24a9dec579b3b332f3c9bd945ab563aba97c36b64d059a7065285b82d7

Contents?: true

Size: 755 Bytes

Versions: 1

Compression:

Stored size: 755 Bytes

Contents

require "jbuilder"

class JPbuilderHandler
  cattr_accessor :default_format, :default_callback
  self.default_format = Mime[:json]
  self.default_callback = nil

  def self.call(template)
    %{
      if defined?(json)
        #{template.source}
      else
        result = JbuilderTemplate.encode(self) do |json|
          #{template.source}
        end
        result = result.each_char.to_a.map { |chr| chr.ord > 1000 ? "\\\\u\#{"%4.4x" % chr.ord}" : chr }.join
        callback = params[:callback] || JPbuilderHandler.default_callback
        if callback.present?
          "/**/\#{callback}(\#{result});"
        else
          result
        end
      end
    }
  end
end

ActionView::Template.register_template_handler :jpbuilder, JPbuilderHandler

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jpbuilder-0.3.0 lib/jpbuilder-handler.rb