Module: BrowserifyRuby

Defined in:
lib/browserify_ruby.rb,
lib/browserify_ruby/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Class Method Summary collapse

Class Method Details

.browserify(data = browserify_manifest) ⇒ Object



29
30
31
32
33
# File 'lib/browserify_ruby.rb', line 29

def browserify(data = browserify_manifest)
  data["manifest"].each do |manifest|
    %x(browserify #{data["source_directory"]}/#{manifest["source"]} -o #{data["bundle_directory"]}/#{manifest["bundle"]})
  end
end

.browserify_manifestObject



62
63
64
# File 'lib/browserify_ruby.rb', line 62

def browserify_manifest
  JSON.parse(File.read('.browserify_ruby.json'))
end

.clean_bundlesObject



46
47
48
49
# File 'lib/browserify_ruby.rb', line 46

def clean_bundles
  data = browserify_manifest
  Dir.glob("#{data["bundle_directory"]}/*.js").each { |f| File.delete(f) }
end

.initObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/browserify_ruby.rb', line 6

def init
  config = basic_config
  FileUtils.mkdir_p config[:source_directory] unless File.exists? config[:source_directory]
  FileUtils.mkdir_p config[:bundle_directory] unless File.exists? config[:bundle_directory]
  File.open("#{config[:source_directory]}/hello.js", 'w') do |f|
    f.puts('var hello = function(string) { return string.toUpperCase(); }')
    f.puts('module.exports = hello;')
  end
  File.open("#{config[:source_directory]}/app.js", 'w') do |f|
    f.puts('var hello = require("./hello");')
    f.puts('var app = function() { console.log(hello("now using browserify!")); }')
    f.puts('module.exports = app();')
  end
  File.write('./.browserify_ruby.json', JSON.pretty_generate(config))
end

.list_bundlesObject



66
67
68
69
70
71
72
73
74
# File 'lib/browserify_ruby.rb', line 66

def list_bundles
  config = browserify_manifest
  bundles = Dir.glob("#{config['bundle_directory']}/**")
  if bundles.empty? 
    puts 'Bundle directory is empty'
  else
    puts bundles
  end
end

.match_and_load(browserify_or_watchify, names) ⇒ Object



51
52
53
54
55
56
57
58
59
60
# File 'lib/browserify_ruby.rb', line 51

def match_and_load(browserify_or_watchify, names)
  case browserify_or_watchify
  when :browserify
    browserify(match(names))
  when :watchify
    watchify(match(names))
  else
    puts "Invalid method call: #{browserify_or_watchify}"
  end
end

.purgeObject



22
23
24
25
26
27
# File 'lib/browserify_ruby.rb', line 22

def purge
  config = browserify_manifest
  FileUtils.remove_dir(config["source_directory"]) if File.exists? config["source_directory"]
  FileUtils.remove_dir(config["bundle_directory"]) if File.exists? config["bundle_directory"]
  FileUtils.rm("./.browserify_ruby.json") if File.exists? "./.browserify_ruby.json"
end

.watchify(data = browserify_manifest) ⇒ Object



35
36
37
38
39
40
41
42
43
44
# File 'lib/browserify_ruby.rb', line 35

def watchify(data = browserify_manifest)
  threads = []
  data["manifest"].each do |manifest|
    thr = Thread.new do
      %x(watchify #{data["source_directory"]}/#{manifest["source"]} -o #{data["bundle_directory"]}/#{manifest["bundle"]} -dv)
    end
    threads.push(thr)
  end
  run_threads(threads)
end