Class: WpFire::Compiler

Inherits:
Object
  • Object
show all
Defined in:
lib/wp_fire/compiler.rb

Class Method Summary collapse

Class Method Details

.compile(filename, build_path, root_path, raise_on_exception = false) ⇒ Object



8
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
43
44
45
46
47
48
49
50
51
# File 'lib/wp_fire/compiler.rb', line 8

def self.compile(filename, build_path, root_path, raise_on_exception=false)
  extname = File.extname(filename)
  basename = File.basename(filename, extname)
  if not basename[0].eql?"_" and extname.eql?".scss"
    sass_engine = Sass::Engine.for_file filename, {}
    begin
      css_content = sass_engine.to_css
      File.open File.join(build_path, basename), "w" do |f|
        f.puts css_content
      end
    rescue Exception => e
      manage_exception(e,raise_on_exception)
    end
  elsif basename[0].eql?"_" and extname.eql?".scss"
    parents_filename = []
    find_scss_parents(filename,parents_filename)
    parents_filename.uniq.each do |parent|
      compile parent, build_path, root_path, raise_on_exception
    end
  elsif extname.eql?".css"
    FileUtils.cp filename, File.join(build_path, File.basename(filename))
  elsif extname.eql?".coffee"
    begin
      js_content = CoffeeScript.compile File.read(filename)
      File.open File.join(build_path, basename), "w" do |f|
        f.puts js_content
      end
    rescue Exception => e
      manage_exception(e,raise_on_exception)
    end
  elsif extname.eql?".js"
    FileUtils.cp filename, File.join(build_path, File.basename(filename))
  elsif extname.eql?".php"
    FileUtils.cp filename, File.join(build_path, File.basename(filename))
  else
    dir = File.dirname(filename)
    dir = dir.sub(File.join(root_path,"source"),'')
    #unwrap from assets path for backward compatibility
    dir = dir.sub("assets",'')
    FileUtils.mkdir_p File.join(build_path, dir) unless File.directory?(File.join(build_path, dir))
    FileUtils.cp filename, File.join(build_path, dir, File.basename(filename))
  end

end

.compile_all(filenames, build_path, root_path, raise_on_exception = false) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/wp_fire/compiler.rb', line 53

def self.compile_all(filenames, build_path, root_path, raise_on_exception=false)
  files = []
  filenames.each do |filename|
    if(File.directory?(filename))
      files = files + find(filename)
    end
    if(File.file?(filename))
      files << filename
    end
  end
  files.each do |f|
    compile f, build_path, root_path, raise_on_exception
  end
end