diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2017-03-30 15:19:06 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-30 15:19:06 -0400 |
commit | 896ee2b679462e7bcaa6890c6f5fdbd3b2e2fccb (patch) | |
tree | 69e7cffab6c4c10ec906a001c2fa5013b1ea44d8 /actionview/Rakefile | |
parent | 3e58b4db503c22d13c9dea205c8c031fab1254c1 (diff) | |
parent | 11341fdb3a1664ba58edf729ed46e04cd0e20ed6 (diff) | |
download | rails-896ee2b679462e7bcaa6890c6f5fdbd3b2e2fccb.tar.gz rails-896ee2b679462e7bcaa6890c6f5fdbd3b2e2fccb.tar.bz2 rails-896ee2b679462e7bcaa6890c6f5fdbd3b2e2fccb.zip |
Merge pull request #28617 from javan/rails-ujs/fix-npm-package
Restore rails-ujs.js UMD module support
Diffstat (limited to 'actionview/Rakefile')
-rw-r--r-- | actionview/Rakefile | 43 |
1 files changed, 42 insertions, 1 deletions
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 |