From 18045fecee1a23d11cfec9dccf5693fea6bd9cf9 Mon Sep 17 00:00:00 2001 From: Marco Schaden Date: Sun, 18 Oct 2020 13:34:28 +0200 Subject: [PATCH 1/2] Rails 6 expects a different mime type format since the gem is unmaintained I borrowed the fix from: https://github.com/bigjason/jpbuilder/pull/13 --- lib/jpbuilder-handler.rb | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/jpbuilder-handler.rb b/lib/jpbuilder-handler.rb index 11c2d69..0e3eda8 100644 --- a/lib/jpbuilder-handler.rb +++ b/lib/jpbuilder-handler.rb @@ -2,17 +2,22 @@ class JPbuilderHandler cattr_accessor :default_format, :default_callback - self.default_format = Mime[:json] - self.default_callback = nil - def self.call(template) + def initialize + self.default_callback = nil + self.default_format = (Rails.version < '6.0.0') ? Mime[:json] : :json + end + + def self.call(template, source=nil) + source ||= template.source %{ if defined?(json) - #{template.source} + #{source} else result = JbuilderTemplate.encode(self) do |json| - #{template.source} + #{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});" From a7f025e429c36dd362c460b89370b0b0eb483e44 Mon Sep 17 00:00:00 2001 From: Marco Schaden Date: Sat, 24 Oct 2020 14:47:26 +0200 Subject: [PATCH 2/2] don't touch my emoji --- lib/jpbuilder-handler.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/jpbuilder-handler.rb b/lib/jpbuilder-handler.rb index 0e3eda8..9658ac2 100644 --- a/lib/jpbuilder-handler.rb +++ b/lib/jpbuilder-handler.rb @@ -17,7 +17,6 @@ def self.call(template, source=nil) result = JbuilderTemplate.encode(self) do |json| #{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});"