class VueApp::Core::Builders::ScssBuilder
SCSS builder
Public Class Methods
new(env = :development)
click to toggle source
Create a SCSS builder for a specific environment @param [Symbol] env @raise [VueApp::Errors::InvalidENV]
# File lib/vueapp/core/builders/scss_builder.rb, line 16 def initialize(env = :development) init_env(env) end
Private Instance Methods
all_scss_into_one_file()
click to toggle source
Merge all *.scss files into one file
# File lib/vueapp/core/builders/scss_builder.rb, line 79 def all_scss_into_one_file File.open(base_scss_file, 'w') do |file| sass_files.each do |sass_file| file.write("/* file: #{sass_file} */\n") if development? file.write(File.read(sass_file)) end end end
base_css_file()
click to toggle source
Base css filename @return [Pathname]
# File lib/vueapp/core/builders/scss_builder.rb, line 42 def base_css_file build_path.join('styles.css') end
base_scss_file()
click to toggle source
Base scss filename @return [Pathname]
# File lib/vueapp/core/builders/scss_builder.rb, line 48 def base_scss_file build_path.join('styles.scss') end
build_dev()
click to toggle source
# File lib/vueapp/core/builders/scss_builder.rb, line 22 def build_dev timer_block( 'Start [development] build for *.scss files', 'CSS time: ') do all_scss_into_one_file compress_css end end
build_production()
click to toggle source
# File lib/vueapp/core/builders/scss_builder.rb, line 31 def build_production timer_block( 'Start [production] build for *.scss files', 'CSS time: ') do all_scss_into_one_file compress_min_css end end
components_scss()
click to toggle source
All *.scss files from [components] folder @return [Array<String>] all [*.scss] files
# File lib/vueapp/core/builders/scss_builder.rb, line 60 def components_scss Dir[src_path.join('components', '**', '*.scss').to_s] end
compress_css()
click to toggle source
Compress scss file
# File lib/vueapp/core/builders/scss_builder.rb, line 101 def compress_css File.open(base_css_file, 'w') do |file| file.write( SassC::Engine.new( File.read(base_scss_file), style: :expanded ).render ) end FileUtils.remove_file(base_scss_file, true) end
compress_min_css()
click to toggle source
Compress and minify scss file
# File lib/vueapp/core/builders/scss_builder.rb, line 89 def compress_min_css File.open(base_css_file, 'w') do |file| file.write( SassC::Engine.new( File.read(base_scss_file), style: :compressed ).render ) end FileUtils.remove_file(base_scss_file, true) end
pages_scss()
click to toggle source
All *.scss files from [pages] folder @return [Array<String>] all [*.scss] files
# File lib/vueapp/core/builders/scss_builder.rb, line 66 def pages_scss Dir[src_path.join('pages', '**', '*.scss').to_s] end
sass_files()
click to toggle source
Get all [*.scss] file in the app path @return [Array<String>] all [*.scss] files
# File lib/vueapp/core/builders/scss_builder.rb, line 72 def sass_files [ styles_scss, components_scss, pages_scss ].flatten! end
styles_scss()
click to toggle source
Base scss file
@return [String]
# File lib/vueapp/core/builders/scss_builder.rb, line 54 def styles_scss src_path.join('styles.scss').to_s end