summaryrefslogtreecommitdiff
path: root/app/helpers/webpack_helper.rb
diff options
context:
space:
mode:
authorMike Greiling <mike@pixelcog.com>2018-02-01 16:01:36 -0600
committerMike Greiling <mike@pixelcog.com>2018-02-01 20:50:16 -0600
commitdd75c337e5ee036fca8188d5b7adbf6e7725570f (patch)
tree140b62739a75a412b5ddbe130d597f287707eebe /app/helpers/webpack_helper.rb
parent900124810cd8d456644b9722d5d703abc751f217 (diff)
downloadgitlab-ce-dd75c337e5ee036fca8188d5b7adbf6e7725570f.tar.gz
update webpack helper to automatically include route-based entry points
Diffstat (limited to 'app/helpers/webpack_helper.rb')
-rw-r--r--app/helpers/webpack_helper.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/helpers/webpack_helper.rb b/app/helpers/webpack_helper.rb
index 77433acb92a..9d071f2d59a 100644
--- a/app/helpers/webpack_helper.rb
+++ b/app/helpers/webpack_helper.rb
@@ -5,6 +5,24 @@ module WebpackHelper
javascript_include_tag(*gitlab_webpack_asset_paths(bundle, force_same_domain: force_same_domain))
end
+ def webpack_controller_bundle_tags
+ bundles = []
+ segments = [*controller.controller_path.split('/'), controller.action_name].compact
+
+ until segments.empty?
+ begin
+ asset_paths = gitlab_webpack_asset_paths("pages.#{segments.join('.')}", extension: 'js')
+ bundles.unshift(*asset_paths)
+ rescue Webpack::Rails::Manifest::EntryPointMissingError
+ # no bundle exists for this path
+ end
+
+ segments.pop
+ end
+
+ javascript_include_tag(*bundles)
+ end
+
# override webpack-rails gem helper until changes can make it upstream
def gitlab_webpack_asset_paths(source, extension: nil, force_same_domain: false)
return "" unless source.present?