class SprocketsIllusionist::IllusionistTemplate

Public Instance Methods

evaluate(_, _) click to toggle source
# File lib/sprockets_illusionist/illusionist_template.rb, line 14
def evaluate(_, _)
  stdout, stderr, _status = Open3.capture3("#{node_path} #{illusionist_path} #{option_string_from_config}", stdin_data: data)

  if stderr.empty?
    stdout
  else
    raise TranspileError, stderr
  end
end
prepare() click to toggle source
# File lib/sprockets_illusionist/illusionist_template.rb, line 11
def prepare
end

Private Instance Methods

amd_module_name() click to toggle source
# File lib/sprockets_illusionist/illusionist_template.rb, line 34
def amd_module_name
  base_path = SprocketsIllusionist::Config.base_path
  file_name = File.basename(file, '.js.es6')

  if !base_path.nil?
    relative_module_path(file, file_name, base_path)
  else
    file_name
  end
end
illusionist_path() click to toggle source
# File lib/sprockets_illusionist/illusionist_template.rb, line 30
def illusionist_path
  SprocketsIllusionist::Config.try(:illusionist_path) || '$(which illusionist)'
end
node_path() click to toggle source
# File lib/sprockets_illusionist/illusionist_template.rb, line 26
def node_path
  SprocketsIllusionist::Config.try(:node_path) || 'node'
end
option_string_from_config() click to toggle source
# File lib/sprockets_illusionist/illusionist_template.rb, line 56
def option_string_from_config
  module_type = SprocketsIllusionist::Config.try(:module_type)
  options = ["-m #{amd_module_name}"]

  if %w(amd cjs globals).include?(module_type)
    options << "-M #{module_type}"
  end

  options.join(' ')
end
relative_module_path(file, file_name, base_path) click to toggle source
# File lib/sprockets_illusionist/illusionist_template.rb, line 45
def relative_module_path(file, file_name, base_path)
  path = Pathname.new(file)
  directory = File.dirname(path.relative_path_from(base_path))

  if directory == '.'
    file_name
  else
    File.join(directory, file_name)
  end
end