Sha256: 154bca4653265ad83b5cc572849396546885665ec76045bf6f4aaa31ed3b7e36

Contents?: true

Size: 868 Bytes

Versions: 4

Compression:

Stored size: 868 Bytes

Contents

class CoffeeScriptRunner
  
  def initialize(binary, dir, filter, dir_finder)
    @binary = binary
    @dir = dir
    @filter = filter
    @coffeescript_dir_finder = dir_finder

    @js_dir = dir + '/src'
  end
  
  def name
    return 'CoffeeScript'
  end
  
  def execute
    output = []
    
    @coffee_dirs.each do |coffee_dir|
      js_dir = coffee_dir.sub '/coffee-', '/'
      output.push `#{@binary} --output "#{js_dir}" --compile "#{coffee_dir}"  2>&1`
    end
    
    return output.join "\n"
  end
  
  # TODO: Only return true if we can find the node binary
  def is_configured?(all_files)
    @coffee_dirs = (@coffeescript_dir_finder.find all_files).uniq
    return @coffee_dirs.length > 0
  end
  
  def should_run?(modified_files)
    return !(modified_files.detect { |file| @filter.filter(file) }).nil? || modified_files.include?(@config)
  end
  
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
loris-0.3.2 lib/tasks/coffeescript/coffeescript_runner.rb
loris-0.3.1 lib/tasks/coffeescript/coffeescript_runner.rb
loris-0.3.0 lib/tasks/coffeescript/coffeescript_runner.rb
loris-0.2.3 lib/tasks/coffeescript/coffeescript_runner.rb