From e0ac3498c669fad7aab18436fc84f9e52b72bc8a Mon Sep 17 00:00:00 2001 From: Javan Makhmali Date: Thu, 30 Mar 2017 14:40:39 -0400 Subject: Restore rails-ujs.js UMD module support --- actionview/Rakefile | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'actionview') diff --git a/actionview/Rakefile b/actionview/Rakefile index 00ab92129d..4adcc723b1 100644 --- a/actionview/Rakefile +++ b/actionview/Rakefile @@ -1,10 +1,13 @@ require "rake/testtask" require "fileutils" +require "open3" + +dir = File.dirname(__FILE__) desc "Default Task" task default: :test -task package: "assets:compile" +task package: %w( assets:compile assets:verify ) # Run the unit tests @@ -84,8 +87,46 @@ namespace :assets do desc "Compile Action View assets" task :compile do require "blade" + require "sprockets" + require "sprockets/export" Blade.build end + + desc "Verify compiled Action Cable assets" + task :verify do + file = "lib/assets/compiled/rails-ujs.js" + pathname = Pathname.new("#{dir}/#{file}") + + print "[verify] #{file} exists " + if pathname.exist? + puts "[OK]" + else + $stderr.puts "[FAIL]" + fail + end + + print "[verify] #{file} is a UMD module " + if pathname.read =~ /module\.exports.*define\.amd/m + puts "[OK]" + else + $stderr.puts "[FAIL]" + fail + end + + print "[verify] #{dir} can be required as a module " + js = <<-JS + window = { Event: class {} } + class Element {} + require('#{dir}') + JS + stdout, stderr, status = Open3.capture3("node", "--print", js) + if status.success? + puts "[OK]" + else + $stderr.puts "[FAIL]\n#{stderr}" + fail + end + end end task :lines do -- cgit v1.2.3