DEV: Refactor plugin SCSS compilation (#12359)

This commit is contained in:
Penar Musaraj
2021-03-12 11:17:42 -05:00
committed by GitHub
parent 53158c0542
commit 52d833472c
11 changed files with 66 additions and 60 deletions

View File

@ -1,12 +1,12 @@
# frozen_string_literal: true
require 'stylesheet/common'
require 'stylesheet/importer'
require 'stylesheet/functions'
module Stylesheet
class Compiler
ASSET_ROOT = "#{Rails.root}/app/assets/stylesheets" unless defined? ASSET_ROOT
def self.compile_asset(asset, options = {})
importer = Importer.new(options)
@ -16,12 +16,16 @@ module Stylesheet
filename = "theme_#{options[:theme_id]}.scss"
file += options[:theme_variables].to_s
file += importer.theme_import(asset)
elsif Importer.special_imports[asset.to_s]
filename = "theme_#{options[:theme_id]}.scss"
file += " @import \"#{asset}\";"
elsif plugin_assets = Importer.plugin_assets[asset.to_s]
filename = "#{asset.to_s}.scss"
options[:load_paths] = [] if options[:load_paths].nil?
plugin_assets.each do |src|
file += File.read src
options[:load_paths] << File.expand_path(File.dirname(src))
end
else
filename = "#{asset}.scss"
path = "#{Stylesheet::Common::ASSET_ROOT}/#{filename}"
path = "#{ASSET_ROOT}/#{filename}"
file += File.read path
case asset.to_s
@ -32,9 +36,7 @@ module Stylesheet
file += importer.font
when "wizard"
file += importer.wizard_fonts
end
if asset.to_s == Stylesheet::Manager::COLOR_SCHEME_STYLESHEET
when Stylesheet::Manager::COLOR_SCHEME_STYLESHEET
file += importer.import_color_definitions
file += importer.import_wcag_overrides
end
@ -46,11 +48,10 @@ module Stylesheet
def self.compile(stylesheet, filename, options = {})
source_map_file = options[:source_map_file] || "#{filename.sub(".scss", "")}.css.map"
load_paths = [Stylesheet::Common::ASSET_ROOT]
load_paths = [ASSET_ROOT]
load_paths += options[:load_paths] if options[:load_paths]
engine = SassC::Engine.new(stylesheet,
importer: Importer,
filename: filename,
style: :compressed,
source_map_file: source_map_file,