class VueApp::Core::Builders::SlimBuilder
Slim builder
Public Class Methods
new(env = :development)
click to toggle source
Create a Slim builder for a specific environment @param [Symbol] env @raise [VueApp::Errors::InvalidENV]
# File lib/vueapp/core/builders/slim_builder.rb, line 16 def initialize(env = :development) init_env(env) end
Public Instance Methods
render_components()
click to toggle source
Render components slim template @return [String]
# File lib/vueapp/core/builders/slim_builder.rb, line 22 def render_components components = '' slim_files.each do |slim_file| components += if development? Slim::Template.new(slim_file, pretty: true).render else Slim::Template.new(slim_file).render end end components end
Private Instance Methods
base_layout()
click to toggle source
Base layout filepath @return [Pathname]
# File lib/vueapp/core/builders/slim_builder.rb, line 64 def base_layout src_path.join('index.slim') end
build_dev()
click to toggle source
# File lib/vueapp/core/builders/slim_builder.rb, line 36 def build_dev timer_block( 'Start [development] build for *.slim files', 'SLIM time: ' ) do File.open(index_file, 'w') do |file| file.write( Slim::Template.new(base_layout, pretty: true).render(self) ) end end end
build_production()
click to toggle source
# File lib/vueapp/core/builders/slim_builder.rb, line 49 def build_production timer_block( 'Start [production] build for *.slim files', 'SLIM time: ' ) do File.open(index_file, 'w') do |file| file.write( Slim::Template.new(base_layout).render(self) ) end end end
components_slim()
click to toggle source
All *.slim files from [components] folder @return [Array<String>] all [*.slim] files
# File lib/vueapp/core/builders/slim_builder.rb, line 76 def components_slim Dir[src_path.join('components', '**', '*.slim').to_s] end
index_file()
click to toggle source
Index html filename @return [Pathname]
# File lib/vueapp/core/builders/slim_builder.rb, line 70 def index_file build_path.join('index.html') end
pages_slim()
click to toggle source
All *.slim files from [pages] folder @return [Array<String>] all [*.slim] files
# File lib/vueapp/core/builders/slim_builder.rb, line 82 def pages_slim Dir[src_path.join('pages', '**', '*.slim').to_s] end
slim_files()
click to toggle source
Get all [*.slim] file in the app path @return [Array<String>] all [*.slim] files
# File lib/vueapp/core/builders/slim_builder.rb, line 88 def slim_files components_slim + pages_slim end