From 11cc4184e92f23ec719f2db51c1d7a23e58ea0dd Mon Sep 17 00:00:00 2001 From: Ibrahim Awwal Date: Thu, 18 Aug 2016 09:01:30 -0700 Subject: [PATCH 1/3] Update register calls to match Sprockets 3/4 --- lib/sprockets/coffee-react.rb | 6 ++---- lib/sprockets/coffee-react/engine.rb | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/sprockets/coffee-react.rb b/lib/sprockets/coffee-react.rb index 739f3a2..28daa60 100644 --- a/lib/sprockets/coffee-react.rb +++ b/lib/sprockets/coffee-react.rb @@ -21,10 +21,8 @@ def evaluate(scope, locals, &block) end def self.install(environment = ::Sprockets) - environment.register_preprocessor 'application/javascript', Sprockets::CoffeeReact - environment.register_postprocessor 'application/javascript', Sprockets::CoffeeReactPostprocessor - environment.register_engine '.cjsx', Sprockets::CoffeeReactScript - environment.register_engine '.js.cjsx', Sprockets::CoffeeReactScript + environment.register_mime_type 'application/x-cjsx',extensions: ['.cjsx', '.js.cjsx'] + environment.register_transformer 'application/x-cjsx', 'application/javascript', Sprockets::CoffeeReactScript end end end diff --git a/lib/sprockets/coffee-react/engine.rb b/lib/sprockets/coffee-react/engine.rb index 7cc954d..b1cef10 100644 --- a/lib/sprockets/coffee-react/engine.rb +++ b/lib/sprockets/coffee-react/engine.rb @@ -15,10 +15,8 @@ class Engine < ::Rails::Engine end def configure_env(env) - env.register_preprocessor 'application/javascript', Sprockets::CoffeeReact - env.register_postprocessor 'application/javascript', Sprockets::CoffeeReactPostprocessor - env.register_engine '.cjsx', Sprockets::CoffeeReactScript - env.register_engine '.js.cjsx', Sprockets::CoffeeReactScript + env.register_mime_type 'application/x-cjsx', extensions: ['.cjsx', '.js.cjsx'] + env.register_transformer 'application/x-cjsx', 'application/javascript', Sprockets::CoffeeReactScript end end end From 881946800bc275bdd300a8ce42510edd434d9e2f Mon Sep 17 00:00:00 2001 From: Ibrahim Awwal Date: Thu, 18 Aug 2016 11:39:06 -0700 Subject: [PATCH 2/3] Provide a CoffeeReactScript::call method for Sprockets 3/4 --- lib/sprockets/coffee-react-script.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/sprockets/coffee-react-script.rb b/lib/sprockets/coffee-react-script.rb index d2adc0b..7187e88 100644 --- a/lib/sprockets/coffee-react-script.rb +++ b/lib/sprockets/coffee-react-script.rb @@ -23,5 +23,16 @@ def evaluate(scope, locals, &block) end end + def self.call(input) + filename = input[:source_path] || input[:filename] + data = input[:data] + if filename.to_s =~ /\.coffee\.cjsx/ + ::CoffeeReact.transform(data) + elsif filename.to_s =~ CJSX_EXTENSION + ::CoffeeScript.compile(::CoffeeReact.transform(data)) + else + data + end + end end end From 70ea6c920eb4888ccf3ab0af2e0b8872cc0e043b Mon Sep 17 00:00:00 2001 From: Ibrahim Awwal Date: Thu, 29 Sep 2016 16:43:20 -0700 Subject: [PATCH 3/3] Match sourcemap source files --- lib/sprockets/coffee-react-script.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/sprockets/coffee-react-script.rb b/lib/sprockets/coffee-react-script.rb index 7187e88..091367d 100644 --- a/lib/sprockets/coffee-react-script.rb +++ b/lib/sprockets/coffee-react-script.rb @@ -24,11 +24,11 @@ def evaluate(scope, locals, &block) end def self.call(input) - filename = input[:source_path] || input[:filename] + filename = (input[:source_path] || input[:filename]).to_s data = input[:data] - if filename.to_s =~ /\.coffee\.cjsx/ + if filename =~ /\.coffee(\.source-.*)?\.cjsx/ ::CoffeeReact.transform(data) - elsif filename.to_s =~ CJSX_EXTENSION + elsif filename =~ CJSX_EXTENSION ::CoffeeScript.compile(::CoffeeReact.transform(data)) else data