class Closure::Compiler::Compilation
Attributes
js_output_file[R]
log[R]
Public Class Methods
new(env, js_output_file=nil, log=nil)
click to toggle source
# File lib/closure/compiler.rb, line 97 def initialize(env, js_output_file=nil, log=nil) @javascript = [] @env = env @js_output_file = js_output_file @log = log end
Public Instance Methods
<<(javascript)
click to toggle source
Appends a string to the javascript. @param [String] javascript
# File lib/closure/compiler.rb, line 138 def <<(javascript) @javascript << javascript self end
compiled?()
click to toggle source
True when compilation actually happened. False when build was up to date.
# File lib/closure/compiler.rb, line 106 def compiled? !!@log end
javascript()
click to toggle source
Always returns the compiled javascript (possibly an empty string). @example
<%= goog.compile(args) %>
# File lib/closure/compiler.rb, line 146 def javascript if @js_output_file file_js = File.read(@js_output_file) rescue '' ([file_js] + @javascript).join nil else @javascript.join nil end end
Also aliased as: to_s
to_response()
click to toggle source
Turn the compiled javascript into a Rack::Response object. Success and warning messages, which aren't raised like errors, will be logged to the javascript console. @example
<% @response = goog.compile(args).to_response %>
@return (Rack::Response)
# File lib/closure/compiler.rb, line 116 def to_response if !log and @javascript.empty? and @js_output_file response = FileResponse.new @env, @js_output_file, 'application/javascript' else response = Rack::Response.new response.headers['Content-Type'] = 'application/javascript' response.headers["Cache-Control"] = 'max-age=0, private, must-revalidate' if log consolable_log = '"Closure Compiler: %s\n\n", ' + log.rstrip.dump if log.split("\n").first =~ / 0 warn/i response.write "try{console.log(#{consolable_log})}catch(err){};\n" else response.write "try{console.warn(#{consolable_log})}catch(err){};\n" end end response.write javascript end response end