class Piperun::Filters::BrowserifyFilter

Public Class Methods

new(entry, options = {}) click to toggle source
Calls superclass method Piperun::Filters::Filter::new
# File lib/piperun/filters/browserify_filter.rb, line 3
def initialize(entry, options = {})
  super()

  @entry = [*entry]
  @options = {
    output: 'bundle.js',
    debug: false,
    fast: false
  }.merge options
end

Public Instance Methods

run(src, dst, files) click to toggle source
# File lib/piperun/filters/browserify_filter.rb, line 14
def run(src, dst, files)
  entry = @entry.map { |e| File.join(src, e) }
  dstpath = File.join(dst, @options[:output])
  FileUtils::mkdir_p File.dirname(dstpath)

  argv = ['browserify',
          '-o', dstpath,
          *entry]
  argv += ['--debug'] if @options[:debug]
  argv += ['--fast'] if @options[:fast]

  pid = Process.spawn(*argv)
  Process.wait(pid)

  return [@options[:output]]
end