class BrwyRails::Runner

Attributes

config[RW]

Public Class Methods

new(config) click to toggle source
# File lib/brwy_rails/runner.rb, line 5
def initialize(config)
  @config = config
end

Public Instance Methods

run() click to toggle source
# File lib/brwy_rails/runner.rb, line 9
def run
  if watching?
    pids = @config.targets.map {|target|
      run_with_watchify(target)
    }
    at_exit do
      pids.each {|pid| Process.exit(pid)}
    end
  else
    @config.targets.map {|target|
      run_with_browserify(target)
    }
  end
end

Private Instance Methods

browserify_cmd(target) click to toggle source
# File lib/brwy_rails/runner.rb, line 43
def browserify_cmd(target)
  "node_modules/.bin/browserify #{cmd target}"
end
cmd(target) click to toggle source
# File lib/brwy_rails/runner.rb, line 51
def cmd(target)
  "#{@config.browserify_opts} -o #{output_path(target)} #{src_path(target)}"
end
ensure_output_dir!() click to toggle source

TODO: Add ensure_target_dir!(target) later

# File lib/brwy_rails/runner.rb, line 71
def ensure_output_dir!
  FileUtils.mkdir_p(output_dir) unless FileTest.exist?(output_dir)
end
output_dir() click to toggle source
# File lib/brwy_rails/runner.rb, line 55
def output_dir
  Rails.root.join(@config.tmpdir)
end
output_path(target) click to toggle source
# File lib/brwy_rails/runner.rb, line 59
def output_path(target)
  # TODO: Consider nested dir
  # Use relative path later
  fpath = output_dir.join(File.basename target)
  fpath.sub File.extname(fpath), (@config.target_suffix + ".js")
end
polling?() click to toggle source
# File lib/brwy_rails/runner.rb, line 29
def polling?
  @config.poll
end
run_with_browserify(target) click to toggle source
# File lib/brwy_rails/runner.rb, line 38
def run_with_browserify(target)
  ensure_output_dir!
  system browserify_cmd(target), chdir: Rails.root
end
run_with_watchify(target) click to toggle source
# File lib/brwy_rails/runner.rb, line 33
def run_with_watchify(target)
  ensure_output_dir!
  spawn watchify_cmd(target), chdir: Rails.root
end
src_path(target) click to toggle source
# File lib/brwy_rails/runner.rb, line 66
def src_path(target)
  Rails.root.join(target)
end
verbose?() click to toggle source
# File lib/brwy_rails/runner.rb, line 75
def verbose?
  @config.verbose
end
watchify_cmd(target) click to toggle source
# File lib/brwy_rails/runner.rb, line 47
def watchify_cmd(target)
  "node_modules/.bin/watchify #{cmd target} #{verbose? ? "-v" : ""} #{polling? ? "--poll=#{@config.polling_interval}" : ""}"
end
watching?() click to toggle source
# File lib/brwy_rails/runner.rb, line 25
def watching?
  @config.watch
end