class Ember::ES6Template::ES6Module

Public Class Methods

call(input) click to toggle source
# File lib/ember/es6_template/sprockets/es6module.rb, line 8
def self.call(input)
  instance.call(input)
end
default_mime_type() click to toggle source
# File lib/ember/es6_template/sprockets-legacy/es6module.rb, line 4
def self.default_mime_type
  'application/javascript'
end
instance() click to toggle source
# File lib/ember/es6_template/sprockets/es6module.rb, line 4
def self.instance
  @instance ||= new(Ember::ES6Template.config)
end
new(config = Config.new) click to toggle source
# File lib/ember/es6_template/sprockets/es6module.rb, line 12
def initialize(config = Config.new)
  @config = config
end

Public Instance Methods

call(input) click to toggle source
# File lib/ember/es6_template/sprockets/es6module.rb, line 16
def call(input)
  data = input[:data]

  dependencies = [
    input[:load_path],
    input[:name],
    data
  ]

  result = input[:cache].fetch(_cache_key + dependencies) do
    transform(data, input)
  end

  result['code']
end
evaluate(scope, locals, &block) click to toggle source
# File lib/ember/es6_template/sprockets-legacy/es6module.rb, line 10
def evaluate(scope, locals, &block)
  env = scope.environment

  result = Babel::Transpiler.transform(data,
    'modules' => 'amdStrict',
    'moduleIds' => true,
    'sourceRoot' => env.root,
    'moduleRoot' => nil,
    'filename' => module_name(scope.logical_path)
  )

  result['code']
end
prepare() click to toggle source
# File lib/ember/es6_template/sprockets-legacy/es6module.rb, line 8
def prepare; end

Private Instance Methods

_cache_key() click to toggle source
# File lib/ember/es6_template/sprockets/es6module.rb, line 44
def _cache_key
  [
    self.class.name,
    VERSION,
    Babel::Transpiler.version,
    Babel::Transpiler.source_version,
    @config.to_hash
  ]
end
config() click to toggle source
# File lib/ember/es6_template/sprockets-legacy/es6module.rb, line 34
def config
  Ember::ES6Template.config
end
module_name(path) click to toggle source
# File lib/ember/es6_template/sprockets-legacy/es6module.rb, line 26
def module_name(path)
  paths = []
  paths << config.module_prefix if config.prefix_pattern =~ path
  paths << path

  paths.compact.join('/')
end
transform(data, input) click to toggle source
# File lib/ember/es6_template/sprockets/es6module.rb, line 34
def transform(data, input)
  Babel::Transpiler.transform(data,
    'modules' => 'amdStrict',
    'moduleIds' => true,
    'sourceRoot' => input[:load_path],
    'moduleRoot' => nil,
    'filename' => module_name(input)
  )
end