Skip to content

Instantly share code, notes, and snippets.

@igrigorik
Created July 28, 2011 05:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save igrigorik/9a72dc99931429c4f8f8 to your computer and use it in GitHub Desktop.
Save igrigorik/9a72dc99931429c4f8f8 to your computer and use it in GitHub Desktop.
goog.require('goog.dom');
function sayHi() {
var newHeader = goog.dom.createDom('h1', {'style': 'background-color:#EEE'}, 'Hello world!');
goog.dom.appendChild(document.body, newHeader);
}
# initializer
require 'klosure-tilt'
path = File.expand_path("../../../app/assets/javascripts/closure-library/closure", __FILE__)
p [:closure_lib_path, path]
Rails.application.assets.append_path path
Rails.application.assets.register_preprocessor 'application/javascript', ClosureDependenciesProcessor
require 'tilt'
class ClosureDependenciesProcessor < Tilt::Template
def prepare; end
def evaluate(context, locals, &block)
p [:CALCDEPS_START]
p [:data, data]
context.require_asset 'goog/base'
data.lines.each do |line|
if line =~ /goog\.require\s*\(\s*[\'\"]([^\)]+)[\'\"]\s*\)/
goog, mod, sub = $1.split(".")
sub ||= mod
mod, sub = mod.downcase, sub.downcase
dep = [goog, mod, sub].join("/")
p [:require_asset, dep]
context.require_asset(dep)
end
end
data
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment