Class: Stylesheet::Compiler
- Inherits:
-
Object
- Object
- Stylesheet::Compiler
- Defined in:
- lib/stylesheet/compiler.rb
Constant Summary collapse
- ASSET_ROOT =
"#{Rails.root}/app/assets/stylesheets"
Class Method Summary collapse
Class Method Details
.compile(stylesheet, filename, options = {}) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/stylesheet/compiler.rb', line 44 def self.compile(stylesheet, filename, = {}) source_map_file = [:source_map_file] || "#{filename.sub(".scss", "")}.css.map" load_paths = [ASSET_ROOT] load_paths += [:load_paths] if [:load_paths] engine = SassC::Engine.new( stylesheet, filename: filename, style: :compressed, source_map_file: source_map_file, source_map_contents: true, load_paths: load_paths, ) result = engine.render if [:rtl] require "rtlcss" [Rtlcss.flip_css(result), nil] else source_map = engine.source_map source_map.force_encoding("UTF-8") [result, source_map] end end |
.compile_asset(asset, options = {}) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/stylesheet/compiler.rb', line 9 def self.compile_asset(asset, = {}) importer = Importer.new() file = importer.prepended_scss if Importer::THEME_TARGETS.include?(asset.to_s) filename = "theme_#{[:theme_id]}.scss" file += [:theme_variables].to_s file += importer.theme_import(asset) elsif plugin_assets = Importer.plugin_assets[asset.to_s] filename = "#{asset}.scss" [:load_paths] = [] if [:load_paths].nil? plugin_assets.each do |src| file += File.read src [:load_paths] << File.(File.dirname(src)) end else filename = "#{asset}.scss" path = "#{ASSET_ROOT}/#{filename}" file += File.read path case asset.to_s when "embed", "publish" file += importer.font when "wizard" file += importer.wizard_fonts when Stylesheet::Manager::COLOR_SCHEME_STYLESHEET file += importer.import_color_definitions file += importer.import_wcag_overrides file += importer.font end end compile(file, filename, ) end |