class Sasquatch::Compiler
Attributes
ext[RW]
Public Class Methods
new(ext)
click to toggle source
# File lib/quatch/compiler.rb, line 7 def initialize ext # set the default extension for compiled files @ext = ext end
Public Instance Methods
compile(files, file)
click to toggle source
compiles files into the specified file
# File lib/quatch/compiler.rb, line 13 def compile(files, file) # setup the output buffer with the base file output_buffer = File.read(File.path(file)) # loop through import files and substitute imports files.each do |key, import_file| output_buffer = import(output_buffer, key, import_file) end File.open(output_filename(file), 'w') do |file| file.write(output_buffer) end end
import(output_buffer, key, import_file)
click to toggle source
search the output buffer for the key and replace it with the import_file
# File lib/quatch/compiler.rb, line 40 def import output_buffer, key, import_file output_buffer.sub(/\/\* @import ["']#{key}["']; \*\//, "/* Imports #{key} */ \n\n" + File.read(import_file.path()) + "\n") end
output_filename(file)
click to toggle source
# File lib/quatch/compiler.rb, line 28 def output_filename file filename = "" file.scan(/^(.*?)\./) do |basename| filename = basename.first + @ext end (filename == file ? filename + @ext : filename) end