From a5dc6088e0e5e28f1daa1137c5f76cfc979dda8f Mon Sep 17 00:00:00 2001 From: Paul Bennett-Freeman Date: Thu, 9 Apr 2020 14:24:36 +0100 Subject: [PATCH] Add an option to disable automatially adding assets to the asset pipeline * Allows projects which do not use the rails asset pipeline, such as those using webpacker to behave more predictably. --- README.md | 11 +++++++++++ lib/mountain_view/configuration.rb | 1 + lib/mountain_view/engine.rb | 10 ++++++---- test/mountain_view/configuration_test.rb | 7 +++++++ 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f464e55..1510f2e 100644 --- a/README.md +++ b/README.md @@ -140,6 +140,17 @@ Would output the following in your view: ### Assets You can require all the components CSS and JS automatically by requiring `mountain_view` in your main JS and CSS files. +If you do not want to have rails compile the assets so you can handle them with another method such as Webpacker +you can skip the asset configuration by setting `skip_assets` eg: + +```ruby +#config/initializers/mountain_view.rb + +MountainView.configure do |config| + config.skip_assets = true +end + + ### Global Stylesheets In case you want to add global stylesheets (e.g. reset, bootstrap, a grid system, etc) to your Mountain View components you can do it by calling them with an initializer diff --git a/lib/mountain_view/configuration.rb b/lib/mountain_view/configuration.rb index bee7f2e..f69bf74 100644 --- a/lib/mountain_view/configuration.rb +++ b/lib/mountain_view/configuration.rb @@ -3,6 +3,7 @@ class Configuration attr_accessor :included_stylesheets attr_accessor :styleguide_path attr_accessor :extra_pages + attr_accessor :skip_assets attr_reader :components_path def initialize diff --git a/lib/mountain_view/engine.rb b/lib/mountain_view/engine.rb index a6780bc..7b453fc 100644 --- a/lib/mountain_view/engine.rb +++ b/lib/mountain_view/engine.rb @@ -18,10 +18,12 @@ class Engine < ::Rails::Engine end initializer "mountain_view.assets" do |_app| - Rails.application.config.assets.paths << - MountainView.configuration.components_path - Rails.application.config.assets.precompile += - %w[mountain_view/styleguide.css mountain_view/styleguide.js] + unless MountainView.configuration.skip_assets + Rails.application.config.assets.paths << + MountainView.configuration.components_path + Rails.application.config.assets.precompile += + %w[mountain_view/styleguide.css mountain_view/styleguide.js] + end end initializer "mountain_view.append_view_paths" do |_app| diff --git a/test/mountain_view/configuration_test.rb b/test/mountain_view/configuration_test.rb index 69b1986..76536bb 100644 --- a/test/mountain_view/configuration_test.rb +++ b/test/mountain_view/configuration_test.rb @@ -22,4 +22,11 @@ class MountainViewConfigurationTest < ActiveSupport::TestCase assert_equal config.styleguide_path, "style-guide" end + + test "set skip_assets option" do + config = MountainView::Configuration.new + config.skip_assets = true + + assert config.skip_assets + end end