Class: Piperun::Filters::BrowserifyFilter

Inherits:
Filter
  • Object
show all
Defined in:
lib/piperun/filters/browserify_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(entry, options = {}) ⇒ BrowserifyFilter

Returns a new instance of BrowserifyFilter.



3
4
5
6
7
8
9
10
11
12
# 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

Instance Method Details

#run(src, dst, files) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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