class Amber::Render::Asset
Constants
- RENDER_MAP
- SOURCE_MAP
Public Class Methods
render(src_file, dst_file)
click to toggle source
# File lib/amber/render/asset.rb, line 21 def self.render(src_file, dst_file) unless Dir.exist?(File.dirname(dst_file)) FileUtils.mkdir_p(File.dirname(dst_file)) end File.unlink(dst_file) if File.exist?(dst_file) src_ext = File.extname(src_file) renderer = RENDER_MAP[src_ext] if renderer if File.basename(src_file) !~ /^_/ # skip partials content = self.send(renderer[:method], *([src_file] + renderer[:args])) new_dst_file = dst_file.sub(/#{Regexp.escape(src_ext)}$/, renderer[:new_suffix]) File.open(new_dst_file,'w') do |w| w.write(content) end end elsif File.basename(src_file) == '.htaccess' # existing htaccess file must be copied, not linked, since # the render will change its contents. FileUtils.cp(src_file, dst_file) else File.link(src_file, dst_file) end rescue SystemCallError => exc Amber.log_exception(exc) end
render_dir(src_dir, dst_dir)
click to toggle source
Render
assets in a single directory (does not walk directory tree). Files prefixed with an _ are treated as partials and not rendered.
# File lib/amber/render/asset.rb, line 52 def self.render_dir(src_dir, dst_dir) Dir.chdir(src_dir) do Dir.glob('*').each do |file| if File.directory?(file) || file =~ /^\./ || file =~ /^_/ next end src_file = File.join(src_dir, file) dst_file = File.join(dst_dir, file) render(src_file, dst_file) end end end
render_sass(src_file, syntax)
click to toggle source
# File lib/amber/render/asset.rb, line 67 def self.render_sass(src_file, syntax) engine = Sass::Engine.new( File.read(src_file), :syntax => syntax, :load_paths => [File.dirname(src_file)], :style => self.sass_render_style ) engine.render end
sass_render_style()
click to toggle source
# File lib/amber/render/asset.rb, line 77 def self.sass_render_style Amber::env == :production ? :compact : :nested end