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) ⇒ Object



7
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
# File 'lib/wp_fire/compiler.rb', line 7

def self.compile(filename, build_path, root_path)
  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, {}
    File.open File.join(build_path, basename), "w" do |f|
      f.puts sass_engine.to_css
    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
    end
  elsif extname.eql?".css"
    FileUtils.cp filename, File.join(build_path, File.basename(filename))
  elsif extname.eql?".coffee"
    File.open File.join(build_path, basename), "w" do |f|
      f.puts CoffeeScript.compile File.read(filename)
    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) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/wp_fire/compiler.rb', line 42

def self.compile_all(filenames, build_path, root_path)
  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
  end
end