Sha256: 281379ec4410e5aee4779694a31017ff6286b431c57234555b2ebb9fb7fc181e
Contents?: true
Size: 906 Bytes
Versions: 2
Compression:
Stored size: 906 Bytes
Contents
# Based on https://github.com/cowboyd/handlebars.rb require 'v8' require 'pathname' module HandlebarsAssets class Loader def initialize @cxt = V8::Context.new @path = Pathname(__FILE__).dirname.join('..','..','vendor','assets','javascripts') @modules = {} end def require(modname) unless mod = @modules[modname] filename = modname =~ /\.js$/ ? modname : "#{modname}.js" filepath = @path.join(filename) fail LoadError, "no such file: #{filename}" unless filepath.exist? load = @cxt.eval("(function(require, module, exports) {#{File.read(filepath)} module.exports = Handlebars;})", filepath.expand_path) object = @cxt['Object'] mod = object.new mod['exports'] = object.new @modules[modname] = mod load.call(method(:require), mod, mod.exports) end return mod.exports end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
handlebars_assets-0.0.3 | lib/handlebars_assets/loader.rb |
handlebars_assets-0.0.2 | lib/handlebars_assets/loader.rb |