class K4slide::Tasks::K4slideTasks
Public Class Methods
new()
click to toggle source
# File lib/k4slide/tasks.rb, line 17 def initialize @compiler = nil end
Public Instance Methods
example_markdown_targets()
click to toggle source
Compiling example markdown file
# File lib/k4slide/tasks.rb, line 128 def example_markdown_targets() target_files = [] example_dir = File.join(K4_ROOT, 'example') ext = 'md' filelist = FileList[File.join(example_dir, "*.#{ext}")] filelist.each do |source_path| source_basename = File.basename(source_path) next if source_basename =~ /^_/ source_basename = source_basename.gsub(/#{ext}$/, 'html') target_path = File.join(example_dir, source_basename) # File.delete(target_path) if File.exists?(target_path) file(target_path) do |t, args| puts t.name src = File.read(source_path) compiler_ = MarkdownCompiler.new(@compiler) html_source = compiler_.to_slide(src) File.open(target_path, 'w') do |io| io.write(html_source) end end target_files << target_path end return target_files end
get_closure_sources()
click to toggle source
@return [FileList]
# File lib/k4slide/tasks.rb, line 50 def get_closure_sources target_files = [] source_dir = @config.closure.target_dir compiled_dir = @config.closure.compiled_dir depends_files = [] @config.closure.load_paths << source_dir @config.closure.load_paths.each do |load_path| depends_files += FileList[File.join(load_path, '**/*.js')].flatten if load_path end ns_suffix = @config.closure.namespace_suffix || 'App' filelist = FileList[File.join(source_dir, '*.js')] filelist.each do |source_path| source_basename = File.basename(source_path) target_path = File.join(compiled_dir, source_basename) same_name_dir = source_path.gsub(/\.js$/, '') depends = depends_files.dup depends.unshift(FileList[File.join(same_name_dir, '**/*.js')].flatten) depends.unshift(source_path) depends = depends.flatten file(target_path => depends) do |t, args| basename = File.basename(t.name).gsub(/\.js$/, '') namespace = "#{basename}.#{ns_suffix}" js_source = @compiler.closure.compile(namespace) File.open(target_path, 'w') do |io| io.write(js_source) end end target_files << target_path end return target_files end
get_sass_source()
click to toggle source
@return [FileList]
# File lib/k4slide/tasks.rb, line 89 def get_sass_source() target_files = [] source_dir = @config.scss.target_dir compiled_dir = @config.scss.compiled_dir ext = @config.scss.ext || 'scss' @config.scss.load_paths << source_dir depends_files = [] @config.scss.load_paths.each do |load_path| depends_files += FileList[File.join(load_path, "**/*.#{ext}")].flatten if load_path end filelist = FileList[File.join(source_dir, "*.#{ext}")] filelist.each do |source_path| source_basename = File.basename(source_path) next if source_basename =~ /^_/ source_basename = source_basename.gsub(/#{ext}$/, 'css') target_path = File.join(compiled_dir, source_basename) depends = depends_files.dup depends.unshift(source_path) file(target_path => depends) do |t, args| puts t.name src = File.read(source_path) css_source = @compiler.scss.compile(src) File.open(target_path, 'w') do |io| io.write(css_source) end end target_files << target_path end return target_files end
install(&block)
click to toggle source
# File lib/k4slide/tasks.rb, line 21 def install(&block) @compiler = ::K4compiler.setup(&block) @config = @compiler.config namespace :k4s do namespace :compile do desc 'Compile JavaScript source with Closure Library.' task :closure => get_closure_sources() desc 'Compile SASS sources' task :sass => get_sass_source() desc 'Compile Markdown sources' task :markdown do puts "Compile Markdown" end desc 'Compile sources.' task :all => ['k4s:compile:closure', 'k4s:compile:sass', 'k4s:compile:markdown'] end namespace :example do task :md2s => (['k4s:example:compile'] + example_markdown_targets()) task :compile => ['k4s:compile:all'] end end end