Class: Jekyll::Converters::Browserify

Inherits:
Converter
  • Object
show all
Defined in:
lib/jekyll/converters/browserify.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Browserify

Returns a new instance of Browserify.



7
8
9
10
11
12
# File 'lib/jekyll/converters/browserify.rb', line 7

def initialize config
  super
  @browserify = nil

  system "npm install" if npm_install?
end

Instance Method Details

#commandObject



52
53
54
# File 'lib/jekyll/converters/browserify.rb', line 52

def command
  config("browserify", "command") || "browserify -"
end

#config(*path) ⇒ Object



72
73
74
# File 'lib/jekyll/converters/browserify.rb', line 72

def config *path
  path.inject(@config) {|c, k| c and c[k] }
end

#convert(content) ⇒ Object



22
23
24
25
# File 'lib/jekyll/converters/browserify.rb', line 22

def convert content
  setup unless @browserify
  @browserify.compile(content)
end

#extsObject



43
44
45
# File 'lib/jekyll/converters/browserify.rb', line 43

def exts
  (config("browserify", "exts") || [".js"]).map(&:downcase)
end

#matches(ext) ⇒ Object



14
15
16
# File 'lib/jekyll/converters/browserify.rb', line 14

def matches ext
  exts.include? ext.downcase
end

#npm_install?Boolean

Returns:

  • (Boolean)


47
48
49
50
# File 'lib/jekyll/converters/browserify.rb', line 47

def npm_install?
  b = config("browserify", "npm_install")
  (b == true) or (b.is_a? String and b.downcase == "true")
end

#nvm_modulesObject



56
57
58
# File 'lib/jekyll/converters/browserify.rb', line 56

def nvm_modules
  config("browserify", "nvm", "modules") || []
end

#nvm_node_verObject



64
65
66
# File 'lib/jekyll/converters/browserify.rb', line 64

def nvm_node_ver
  config("browserify", "nvm", "node_version")
end

#nvm_optionObject



60
61
62
# File 'lib/jekyll/converters/browserify.rb', line 60

def nvm_option
  config("browserify", "nvm", "option") || ""
end

#output_ext(ext) ⇒ Object



18
19
20
# File 'lib/jekyll/converters/browserify.rb', line 18

def output_ext ext
  ".js"
end

#setupObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/jekyll/converters/browserify.rb', line 27

def setup
  require "browserify_rb"
  if use_nvm?
    @browserify = BrowserifyRb::Nvm::Browserify.new(
      required_modules: nvm_modules,
      browserify_opts: nvm_option,
      nvm_dir: File.join(ENV["PWD"], ".nvm"),
      node_ver: nvm_node_ver
    )
  else
    @browserify = BrowserifyRb::Browserify.new(
      command: command
    )
  end
end

#use_nvm?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/jekyll/converters/browserify.rb', line 68

def use_nvm?
  not config("browserify", "nvm").nil?
end