diff --git a/README.md b/README.md index c25a505..b00c20b 100644 --- a/README.md +++ b/README.md @@ -29,13 +29,17 @@ By default, only `app/assets/stylesheets/application.scss` will be built. If you ``` # config/initializers/dartsass.rb Rails.application.config.dartsass.builds = { - "app/index.sass" => "app.css", - "site.scss" => "site.css" + "index.sass" => "app.css", + "site.scss" => "site.css" + "engines/travel/app/assets/stylesheets/travel/main.scss" => "travel/main.css", + "lib/stylesheets/common.css" => "common.css", } ``` The hash key is the relative path to a Sass file in `app/assets/stylesheets/` and the hash value will be the name of the file output to `app/assets/builds/`. +If file does not exist in `app/assets/stylesheets/` directory - relative path will be changed to `Rails.root`. + ## Importing assets from gems `dartsass:build` includes application [assets paths](https://guides.rubyonrails.org/asset_pipeline.html#search-paths) as Sass [load paths](https://sass-lang.com/documentation/at-rules/use#load-paths). Assuming the gem has made assets visible to the Rails application, no additional configuration is required to use them. diff --git a/lib/tasks/build.rake b/lib/tasks/build.rake index 12f9f3a..f3d4745 100644 --- a/lib/tasks/build.rake +++ b/lib/tasks/build.rake @@ -1,11 +1,15 @@ EXEC_PATH = "#{Pathname.new(__dir__).to_s}/../../exe/dartsass" CSS_LOAD_PATH = Rails.root.join("app/assets/stylesheets") CSS_BUILD_PATH = Rails.root.join("app/assets/builds") +CSS_LOAD_FROM_RAILS_ROOT_PATH = Rails.root def dartsass_build_mapping - Rails.application.config.dartsass.builds.map { |input, output| - "#{CSS_LOAD_PATH.join(input)}:#{CSS_BUILD_PATH.join(output)}" - }.join(" ") + builds_map = Rails.application.config.dartsass.builds.map { |input, output| + input_file_path = "#{CSS_LOAD_PATH.join(input)}" + input_file_path = "#{CSS_LOAD_FROM_RAILS_ROOT_PATH.join(input)}" unless File.exist?(input_file_path) + "#{input_file_path}:#{CSS_BUILD_PATH.join(output)}" + } + builds_map.uniq.join(" ") end def dartsass_build_options