class TvSnow::Compiler
Public Instance Methods
check_or_create(dir)
click to toggle source
A fairly trivial method that creates a directory if it does not already exist
# File lib/tv_snow.rb, line 37 def check_or_create(dir) if not File.directory?(dir) puts "Creating #{ dir }..." Dir.mkdir(dir) end end
compile()
click to toggle source
Compile the site – Heavily inspired by Jekyll and Octopress!
# File lib/tv_snow.rb, line 6 def compile # Define directory names deploy_dir = "_deploy/" css_dir = "css" js_dir = "js" img_dir = "img" # Make sure all of our destinations exist! check_or_create(deploy_dir) check_or_create(deploy_dir + css_dir) check_or_create(deploy_dir + js_dir) check_or_create(deploy_dir + img_dir) # Copy all markup to be deployed, compile if necessary compile_type("slimrb", "slim", ".", deploy_dir) compile_type("haml", "haml", ".", deploy_dir) copy_files("html", "", deploy_dir) # Copy all stylesheets, compile if necessary compile_type("sass", "scss", css_dir, deploy_dir + css_dir) copy_files("css", css_dir, deploy_dir) # Copy Javascript, compile if necessary #compile("coffee -o ") TODO: Fix this copy_files("js", js_dir, deploy_dir) # Copy all images copy_files("*", img_dir, deploy_dir) end
compile_type(command, ext, source_dir, dest_dir)
click to toggle source
Runs a given command, compiling all of the given file types and outputting the result into a given destination
# File lib/tv_snow.rb, line 46 def compile_type(command, ext, source_dir, dest_dir) Dir.glob("#{ source_dir }/*.#{ ext }") do |file| new_file_name = File.basename(file)[0..-(ext.length + 2)] puts "Compiling #{ file } to #{ new_file_name }..." system "#{ command } #{ file } > #{ dest_dir }/#{ new_file_name }" end end
copy_files(ext, source_dir, dest_dir)
click to toggle source
Simply runs 'cp'. It operates file-by-file instead of recursively because I like printing individual files (it looks cool)
# File lib/tv_snow.rb, line 56 def copy_files(ext, source_dir, dest_dir) Dir.glob("#{ source_dir }/*.#{ ext }") do |file| puts "Copying #{ file }..." command = "cp #{ file } #{ dest_dir }/#{ file }" system command end end