From def9caeb6b38b5b23f0fdb3a094e7b45e64bb24d Mon Sep 17 00:00:00 2001 From: "Strech (Sergey Fedorov)" Date: Thu, 24 Mar 2016 11:12:31 +0100 Subject: [PATCH 1/2] Respect Rails assets env. for gzip compression Skip gzip compression if it's disabled in Rails env. --- lib/tasks/requirejs-rails_tasks.rake | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/tasks/requirejs-rails_tasks.rake b/lib/tasks/requirejs-rails_tasks.rake index 72917782..d1cbe059 100644 --- a/lib/tasks/requirejs-rails_tasks.rake +++ b/lib/tasks/requirejs-rails_tasks.rake @@ -174,13 +174,15 @@ OS X Homebrew users can use 'brew install node'. requirejs.manifest[module_script_name] = digest_name FileUtils.cp built_asset_path, digest_asset_path - # Create the compressed versions - File.open("#{built_asset_path}.gz", 'wb') do |f| - zgw = Zlib::GzipWriter.new(f, Zlib::BEST_COMPRESSION) - zgw.write built_asset_path.read - zgw.close + # Create the compressed versions if gzip is not disabled + if !requirejs.env.respond_to?(:gzip?) || requirejs.env.gzip? + File.open("#{built_asset_path}.gz", 'wb') do |f| + zgw = Zlib::GzipWriter.new(f, Zlib::BEST_COMPRESSION) + zgw.write built_asset_path.read + zgw.close + end + FileUtils.cp "#{built_asset_path}.gz", "#{digest_asset_path}.gz" end - FileUtils.cp "#{built_asset_path}.gz", "#{digest_asset_path}.gz" requirejs.config.manifest_path.open('wb') do |f| YAML.dump(requirejs.manifest, f) From b8a0c06cec99faf5ed9fed98cbc00d3d5369cb64 Mon Sep 17 00:00:00 2001 From: "Strech (Sergey Fedorov)" Date: Thu, 24 Mar 2016 12:14:20 +0100 Subject: [PATCH 2/2] Replace Rails.application.assets to requirejs.env Since we already have Rails env in requirejs.env it doesn't make any sense to call file_digest from Rails --- lib/tasks/requirejs-rails_tasks.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/requirejs-rails_tasks.rake b/lib/tasks/requirejs-rails_tasks.rake index d1cbe059..e10b6739 100644 --- a/lib/tasks/requirejs-rails_tasks.rake +++ b/lib/tasks/requirejs-rails_tasks.rake @@ -162,7 +162,7 @@ OS X Homebrew users can use 'brew install node'. built_asset_path = requirejs.config.build_dir.join(asset_name) # Compute the digest based on the contents of the compiled file, *not* on the contents of the RequireJS module. - file_digest = ::Rails.application.assets.file_digest(built_asset_path.to_s) + file_digest = requirejs.env.file_digest(built_asset_path.to_s) hex_digest = file_digest.unpack("H*").first digest_name = asset.logical_path.gsub(path_extension_pattern) { |ext| "-#{hex_digest}#{ext}" }