<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> Class: Closure::Goog — Documentation by YARD 0.8.7.6 </title> <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" /> <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" /> <script type="text/javascript" charset="utf-8"> hasFrames = window.top.frames.main ? true : false; relpath = '../'; framesUrl = "../frames.html#!Closure/Goog.html"; </script> <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script> <script type="text/javascript" charset="utf-8" src="../js/app.js"></script> </head> <body> <div id="header"> <div id="menu"> <a href="../_index.html">Index (G)</a> » <span class='title'><span class='object_link'><a href="../Closure.html" title="Closure (class)">Closure</a></span></span> » <span class="title">Goog</span> <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div> </div> <div id="search"> <a class="full_list_link" id="class_list_link" href="../class_list.html"> Class List </a> <a class="full_list_link" id="method_list_link" href="../method_list.html"> Method List </a> <a class="full_list_link" id="file_list_link" href="../file_list.html"> File List </a> </div> <div class="clear"></div> </div> <iframe id="search_frame"></iframe> <div id="content"><h1>Class: Closure::Goog </h1> <dl class="box"> <dt class="r1">Inherits:</dt> <dd class="r1"> <span class="inheritName">Object</span> <ul class="fullTree"> <li>Object</li> <li class="next">Closure::Goog</li> </ul> <a href="#" class="inheritanceTree">show all</a> </dd> <dt class="r2">Includes:</dt> <dd class="r2">Enumerable</dd> <dt class="r1 last">Defined in:</dt> <dd class="r1 last">lib/closure/goog.rb</dd> </dl> <div class="clear"></div> <h2>Overview</h2><div class="docstring"> <div class="discussion"> <p>Scripts render with an instance named goog in the context.</p> </div> </div> <div class="tags"> </div> <h2> Instance Method Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small> </h2> <ul class="summary"> <li class="public "> <span class="summary_signature"> <a href="#add_dependency-instance_method" title="#add_dependency (instance method)">- <strong>add_dependency</strong>(dependency) </a> </span> <span class="summary_desc"><div class='inline'> <p>You can add additional files to have their mtimes scanned.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#base_js-instance_method" title="#base_js (instance method)">- (String) <strong>base_js</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>The Google Closure base.js script.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#compile-instance_method" title="#compile (instance method)">- (Compilation) <strong>compile</strong>(args) </a> </span> <span class="summary_desc"><div class='inline'> <p>Compile javascript.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#deps_js-instance_method" title="#deps_js (instance method)">- (String) <strong>deps_js</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>This is where base.js looks to find deps.js by default.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#deps_response-instance_method" title="#deps_response (instance method)">- (Rack::Response) <strong>deps_response</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>You can serve a deps.js from anywhere you want to drop a script.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#each-instance_method" title="#each (instance method)">- <strong>each</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>Advanced Scripts may need to know where all the sources are.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#files_for-instance_method" title="#files_for (instance method)">- (Array) <strong>files_for</strong>(namespace, filenames = nil) </a> </span> <span class="summary_desc"><div class='inline'> <p>Calculate files needed to satisfy a namespace.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#initialize-instance_method" title="#initialize (instance method)">- (Goog) <strong>initialize</strong>(env, sources, render_stack) </a> </span> <span class="note title constructor">constructor</span> <span class="summary_desc"><div class='inline'> <p>A new instance of Goog.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#refresh-instance_method" title="#refresh (instance method)">- <strong>refresh</strong> </a> </span> <span class="summary_desc"><div class='inline'> <p>If you change any javascript sources then you need to tell Script.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#soy_to_js-instance_method" title="#soy_to_js (instance method)">- <strong>soy_to_js</strong>(args) </a> </span> <span class="summary_desc"><div class='inline'> <p>Convert soy templates to javascript.</p> </div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#src_for-instance_method" title="#src_for (instance method)">- (String) <strong>src_for</strong>(filename) </a> </span> <span class="summary_desc"><div class='inline'> <p>Calculate the deps src for a filename.</p> </div></span> </li> </ul> <div id="constructor_details" class="method_details_list"> <h2>Constructor Details</h2> <div class="method_details first"> <h3 class="signature first" id="initialize-instance_method"> - (<tt><span class='object_link'><a href="" title="Closure::Goog (class)">Goog</a></span></tt>) <strong>initialize</strong>(env, sources, render_stack) </h3><div class="docstring"> <div class="discussion"> <p>Returns a new instance of Goog</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 22 23 24 25 26 27</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/closure/goog.rb', line 22</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_env'>env</span><span class='comma'>,</span> <span class='id identifier rubyid_sources'>sources</span><span class='comma'>,</span> <span class='id identifier rubyid_render_stack'>render_stack</span><span class='rparen'>)</span> <span class='ivar'>@sources</span> <span class='op'>=</span> <span class='id identifier rubyid_sources'>sources</span> <span class='ivar'>@env</span> <span class='op'>=</span> <span class='id identifier rubyid_env'>env</span> <span class='ivar'>@render_stack</span> <span class='op'>=</span> <span class='id identifier rubyid_render_stack'>render_stack</span> <span class='ivar'>@dependencies</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> <div id="instance_method_details" class="method_details_list"> <h2>Instance Method Details</h2> <div class="method_details first"> <h3 class="signature first" id="add_dependency-instance_method"> - <strong>add_dependency</strong>(dependency) </h3><div class="docstring"> <div class="discussion"> <p>You can add additional files to have their mtimes scanned. Perhaps you want to use a .yml file to define build options. Closure::Script calls this for every render so you don't need to define compiler arguments in the same script that calls compile.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 33 34 35 36</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/closure/goog.rb', line 33</span> <span class='kw'>def</span> <span class='id identifier rubyid_add_dependency'>add_dependency</span><span class='lparen'>(</span><span class='id identifier rubyid_dependency'>dependency</span><span class='rparen'>)</span> <span class='id identifier rubyid_dependency'>dependency</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span> <span class='id identifier rubyid_dependency'>dependency</span><span class='comma'>,</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='ivar'>@render_stack</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span> <span class='ivar'>@dependencies</span> <span class='op'><<</span> <span class='id identifier rubyid_dependency'>dependency</span> <span class='kw'>unless</span> <span class='ivar'>@dependencies</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_dependency'>dependency</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="base_js-instance_method"> - (<tt>String</tt>) <strong>base_js</strong> </h3><div class="docstring"> <div class="discussion"> <p>The Google Closure base.js script. If you use this instead of a static link, you are free to relocate relative to the Google Closure library without updating every html fixture page.</p> </div> </div> <div class="tags"> <div class="examples"> <p class="tag_title">Examples:</p> <p class="example_title"><div class='inline'> <p>view_test.erb</p> </div></p> <pre class="example code"><code><script src="<%= goog.base_js %>"></script></code></pre> </div> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>String</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 159 160 161</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/closure/goog.rb', line 159</span> <span class='kw'>def</span> <span class='id identifier rubyid_base_js'>base_js</span> <span class='ivar'>@sources</span><span class='period'>.</span><span class='id identifier rubyid_base_js'>base_js</span><span class='lparen'>(</span><span class='ivar'>@env</span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="compile-instance_method"> - (<tt>Compilation</tt>) <strong>compile</strong>(args) </h3><div class="docstring"> <div class="discussion"> <p>Compile javascript. Accepts every argument that compiler.jar supports. This method supports all compiler augmentations added by Closure Script. Path options are expanded relative to the script calling #compile.</p> <ul><li> <p>`–ns namespace` expands in place to `–js filename` arguments which satisfy the namespace.</p> </li><li> <p>`–module name:*:dep` File count will be filled in automatically. The * is replaced with the count of files up to next –module or the end.</p> </li><li> <p>`–js_output_file file` is compared against sources modification times to determine if compilation is to be performed.</p> </li><li> <p>`–compilation_level` when not supplied, the scripts are loaded raw.</p> </li></ul> </div> </div> <div class="tags"> <div class="examples"> <p class="tag_title">Examples:</p> <p class="example_title"><div class='inline'> <p>myapp.js.erb</p> </div></p> <pre class="example code"><code><% @response = goog.compile(%w{ --js_output_file ../public/myapp.js --ns myapp.HelloWorld --compilation_level ADVANCED_OPTIMIZATIONS }).to_response %></code></pre> </div> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>args</span> <span class='type'>(<tt>Array<String></tt>)</span> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Compilation</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/closure/goog.rb', line 70</span> <span class='kw'>def</span> <span class='id identifier rubyid_compile'>compile</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='const'>Array</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='id identifier rubyid_args'>args</span> <span class='comment'># work on a copy </span> <span class='id identifier rubyid_pre_js_tempfile'>pre_js_tempfile</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>begin</span> <span class='const'>Compiler</span><span class='op'>::</span><span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_expand_paths'>expand_paths</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='ivar'>@render_stack</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span> <span class='id identifier rubyid_mods'>mods</span> <span class='op'>=</span> <span class='const'>Compiler</span><span class='op'>::</span><span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_augment'>augment</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='ivar'>@sources</span><span class='comma'>,</span> <span class='ivar'>@env</span> <span class='kw'>if</span> <span class='const'>Compiler</span><span class='op'>::</span><span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_arg_values'>arg_values</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--compilation_level</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='comment'># Raw mode </span> <span class='id identifier rubyid_comp'>comp</span> <span class='op'>=</span> <span class='const'>Compiler</span><span class='op'>::</span><span class='const'>Compilation</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='ivar'>@env</span> <span class='kw'>if</span> <span class='id identifier rubyid_mods'>mods</span> <span class='id identifier rubyid_comp'>comp</span> <span class='op'><<</span> <span class='const'>Compiler</span><span class='op'>::</span><span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_module_info'>module_info</span><span class='lparen'>(</span><span class='id identifier rubyid_mods'>mods</span><span class='rparen'>)</span> <span class='id identifier rubyid_comp'>comp</span> <span class='op'><<</span> <span class='const'>Compiler</span><span class='op'>::</span><span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_module_uris_raw'>module_uris_raw</span><span class='lparen'>(</span><span class='id identifier rubyid_mods'>mods</span><span class='comma'>,</span> <span class='ivar'>@sources</span><span class='rparen'>)</span> <span class='kw'>end</span> <span class='id identifier rubyid_js_counter'>js_counter</span> <span class='op'>=</span> <span class='int'>0</span> <span class='id identifier rubyid_args_index'>args_index</span> <span class='op'>=</span> <span class='int'>0</span> <span class='kw'>while</span> <span class='id identifier rubyid_args_index'>args_index</span> <span class='op'><</span> <span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='id identifier rubyid_option'>option</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_args'>args</span><span class='lbracket'>[</span><span class='id identifier rubyid_args_index'>args_index</span><span class='comma'>,</span> <span class='int'>2</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_option'>option</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--js</span><span class='tstring_end'>'</span></span> <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='ivar'>@render_stack</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span> <span class='id identifier rubyid_script_tag'>script_tag</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'><script src=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_src_for'>src_for</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_dump'>dump</span><span class='embexpr_end'>}</span><span class='tstring_content'>></script></span><span class='tstring_end'>"</span></span> <span class='id identifier rubyid_comp'>comp</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>document.write(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_script_tag'>script_tag</span><span class='period'>.</span><span class='id identifier rubyid_dump'>dump</span><span class='embexpr_end'>}</span><span class='tstring_content'>);\n</span><span class='tstring_end'>"</span></span> <span class='id identifier rubyid_js_counter'>js_counter</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='comment'># For modules, just the files for the first module </span> <span class='kw'>break</span> <span class='kw'>if</span> <span class='id identifier rubyid_mods'>mods</span> <span class='kw'>and</span> <span class='id identifier rubyid_js_counter'>js_counter</span> <span class='op'>>=</span> <span class='id identifier rubyid_mods'>mods</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:files</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='kw'>end</span> <span class='id identifier rubyid_args_index'>args_index</span> <span class='op'>=</span> <span class='id identifier rubyid_args_index'>args_index</span> <span class='op'>+</span> <span class='int'>2</span> <span class='kw'>end</span> <span class='kw'>else</span> <span class='comment'># Compiled mode </span> <span class='id identifier rubyid_module_output_path_prefix'>module_output_path_prefix</span> <span class='op'>=</span> <span class='const'>Compiler</span><span class='op'>::</span><span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_arg_values'>arg_values</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--module_output_path_prefix</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span> <span class='kw'>if</span> <span class='id identifier rubyid_mods'>mods</span> <span class='kw'>and</span> <span class='op'>!</span><span class='id identifier rubyid_module_output_path_prefix'>module_output_path_prefix</span> <span class='comment'># raise this before compilation so we don't write to a weird place </span> <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>--module_output_path_prefix is required when using --module</span><span class='tstring_end'>"</span></span> <span class='kw'>end</span> <span class='id identifier rubyid_comp'>comp</span> <span class='op'>=</span> <span class='const'>Compiler</span><span class='period'>.</span><span class='id identifier rubyid_compile'>compile</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='ivar'>@dependencies</span><span class='comma'>,</span> <span class='ivar'>@env</span> <span class='kw'>if</span> <span class='id identifier rubyid_mods'>mods</span> <span class='id identifier rubyid_refresh'>refresh</span> <span class='comment'># compilation may add new files, module_uris_compiled uses src_for </span> <span class='id identifier rubyid_prefix'>prefix</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span> <span class='id identifier rubyid_module_output_path_prefix'>module_output_path_prefix</span><span class='comma'>,</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='ivar'>@render_stack</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_comp'>comp</span><span class='period'>.</span><span class='id identifier rubyid_js_output_file'>js_output_file</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span> <span class='id identifier rubyid_comp'>comp</span><span class='period'>.</span><span class='id identifier rubyid_js_output_file'>js_output_file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>w</span><span class='tstring_end'>'</span></span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_f'>f</span><span class='op'>|</span> <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span> <span class='const'>Compiler</span><span class='op'>::</span><span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_module_info'>module_info</span> <span class='id identifier rubyid_mods'>mods</span> <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span> <span class='const'>Compiler</span><span class='op'>::</span><span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_module_uris_compiled'>module_uris_compiled</span> <span class='id identifier rubyid_mods'>mods</span><span class='comma'>,</span> <span class='ivar'>@sources</span><span class='comma'>,</span> <span class='id identifier rubyid_prefix'>prefix</span> <span class='kw'>end</span> <span class='kw'>else</span> <span class='id identifier rubyid_comp'>comp</span> <span class='op'><<</span> <span class='const'>Compiler</span><span class='op'>::</span><span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_module_info'>module_info</span><span class='lparen'>(</span><span class='id identifier rubyid_mods'>mods</span><span class='rparen'>)</span> <span class='id identifier rubyid_comp'>comp</span> <span class='op'><<</span> <span class='const'>Compiler</span><span class='op'>::</span><span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_module_uris_compiled'>module_uris_compiled</span><span class='lparen'>(</span><span class='id identifier rubyid_mods'>mods</span><span class='comma'>,</span> <span class='ivar'>@sources</span><span class='comma'>,</span> <span class='id identifier rubyid_prefix'>prefix</span><span class='rparen'>)</span> <span class='kw'>end</span> <span class='comment'># Load the first module </span> <span class='id identifier rubyid_first_module_file'>first_module_file</span> <span class='op'>=</span> <span class='id identifier rubyid_module_output_path_prefix'>module_output_path_prefix</span> <span class='op'>+</span> <span class='id identifier rubyid_mods'>mods</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>.js</span><span class='tstring_end'>'</span></span> <span class='id identifier rubyid_first_module_file'>first_module_file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span> <span class='id identifier rubyid_first_module_file'>first_module_file</span><span class='comma'>,</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='ivar'>@render_stack</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span> <span class='id identifier rubyid_script_tag'>script_tag</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'><script src=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_src_for'>src_for</span><span class='lparen'>(</span><span class='id identifier rubyid_first_module_file'>first_module_file</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_dump'>dump</span><span class='embexpr_end'>}</span><span class='tstring_content'>></script></span><span class='tstring_end'>"</span></span> <span class='id identifier rubyid_comp'>comp</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>document.write(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_script_tag'>script_tag</span><span class='period'>.</span><span class='id identifier rubyid_dump'>dump</span><span class='embexpr_end'>}</span><span class='tstring_content'>);\n</span><span class='tstring_end'>"</span></span> <span class='kw'>end</span> <span class='kw'>end</span> <span class='id identifier rubyid_comp'>comp</span> <span class='kw'>ensure</span> <span class='kw'>if</span> <span class='id identifier rubyid_pre_js_tempfile'>pre_js_tempfile</span> <span class='id identifier rubyid_pre_js_tempfile'>pre_js_tempfile</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span> <span class='id identifier rubyid_pre_js_tempfile'>pre_js_tempfile</span><span class='period'>.</span><span class='id identifier rubyid_unlink'>unlink</span> <span class='kw'>end</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="deps_js-instance_method"> - (<tt>String</tt>) <strong>deps_js</strong> </h3><div class="docstring"> <div class="discussion"> <p>This is where base.js looks to find deps.js by default. You will always be served a Closure Script generated deps.js from this location. Very old Library versions may get confused by the forward caching query string; either update your base.js, install a deps_response Script where it's looking, or manually set CLOSURE_BASE_PATH.</p> </div> </div> <div class="tags"> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>String</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 169 170 171</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/closure/goog.rb', line 169</span> <span class='kw'>def</span> <span class='id identifier rubyid_deps_js'>deps_js</span> <span class='ivar'>@sources</span><span class='period'>.</span><span class='id identifier rubyid_deps_js'>deps_js</span><span class='lparen'>(</span><span class='ivar'>@env</span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="deps_response-instance_method"> - (<tt>Rack::Response</tt>) <strong>deps_response</strong> </h3><div class="docstring"> <div class="discussion"> <p>You can serve a deps.js from anywhere you want to drop a script.</p> </div> </div> <div class="tags"> <div class="examples"> <p class="tag_title">Examples:</p> <p class="example_title"><div class='inline'> <p>something.js.erb</p> </div></p> <pre class="example code"><code><% @response = goog.deps_response %></code></pre> </div> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Rack::Response</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 177 178 179</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/closure/goog.rb', line 177</span> <span class='kw'>def</span> <span class='id identifier rubyid_deps_response'>deps_response</span> <span class='ivar'>@sources</span><span class='period'>.</span><span class='id identifier rubyid_deps_response'>deps_response</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='const'>Rack</span><span class='op'>::</span><span class='const'>Utils</span><span class='period'>.</span><span class='id identifier rubyid_unescape'>unescape</span><span class='lparen'>(</span><span class='ivar'>@env</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>PATH_INFO</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='ivar'>@env</span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="each-instance_method"> - <strong>each</strong> </h3><div class="docstring"> <div class="discussion"> <p>Advanced Scripts may need to know where all the sources are. This has potential for a source browser, editor, and more.</p> </div> </div> <div class="tags"> <div class="examples"> <p class="tag_title">Examples:</p> <pre class="example code"><code>goog.each {|directory, path| ... }</code></pre> </div> </div><table class="source_code"> <tr> <td> <pre class="lines"> 185 186 187 188 189</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/closure/goog.rb', line 185</span> <span class='kw'>def</span> <span class='id identifier rubyid_each'>each</span> <span class='ivar'>@sources</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_directory'>directory</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='op'>|</span> <span class='kw'>yield</span> <span class='id identifier rubyid_directory'>directory</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span> <span class='kw'>end</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="files_for-instance_method"> - (<tt>Array</tt>) <strong>files_for</strong>(namespace, filenames = nil) </h3><div class="docstring"> <div class="discussion"> <p>Calculate files needed to satisfy a namespace. This will be especially useful for module generation. If you pass the filenames returned from last run, additional files (if any) will be appended to satisfy the new namespace.</p> </div> </div> <div class="tags"> <div class="examples"> <p class="tag_title">Examples:</p> <p class="example_title"><div class='inline'> <p>cal_file_list.erb</p> </div></p> <pre class="example code"><code><%= goog.files_for %w{myapp.Calendar} %></code></pre> </div> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Array</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 149 150 151</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/closure/goog.rb', line 149</span> <span class='kw'>def</span> <span class='id identifier rubyid_files_for'>files_for</span><span class='lparen'>(</span><span class='id identifier rubyid_namespace'>namespace</span><span class='comma'>,</span> <span class='id identifier rubyid_filenames'>filenames</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span> <span class='ivar'>@sources</span><span class='period'>.</span><span class='id identifier rubyid_files_for'>files_for</span><span class='lparen'>(</span><span class='id identifier rubyid_namespace'>namespace</span><span class='comma'>,</span> <span class='id identifier rubyid_filenames'>filenames</span><span class='comma'>,</span> <span class='ivar'>@env</span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="refresh-instance_method"> - <strong>refresh</strong> </h3><div class="docstring"> <div class="discussion"> <p>If you change any javascript sources then you need to tell Script. This is a lazy refresh, you may call it repeatedly.</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 40 41 42</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/closure/goog.rb', line 40</span> <span class='kw'>def</span> <span class='id identifier rubyid_refresh'>refresh</span> <span class='ivar'>@sources</span><span class='period'>.</span><span class='id identifier rubyid_invalidate'>invalidate</span> <span class='ivar'>@env</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="soy_to_js-instance_method"> - <strong>soy_to_js</strong>(args) </h3><div class="docstring"> <div class="discussion"> <p>Convert soy templates to javascript. Accepts all arguments that SoyToJsSrcCompiler.jar support plus it expands filename globs. All source filenames are relative to the script calling #soy_to_js.</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>args</span> <span class='type'>(<tt>Array<String></tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 48 49 50 51</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/closure/goog.rb', line 48</span> <span class='kw'>def</span> <span class='id identifier rubyid_soy_to_js'>soy_to_js</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='const'>Templates</span><span class='op'>::</span><span class='id identifier rubyid_compile'>compile</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='ivar'>@render_stack</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='id identifier rubyid_refresh'>refresh</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="src_for-instance_method"> - (<tt>String</tt>) <strong>src_for</strong>(filename) </h3><div class="docstring"> <div class="discussion"> <p>Calculate the deps src for a filename.</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>filename</span> <span class='type'>(<tt>String</tt>)</span> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'> <p>http path info with forward caching query.</p> </div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 136 137 138 139</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/closure/goog.rb', line 136</span> <span class='kw'>def</span> <span class='id identifier rubyid_src_for'>src_for</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span> <span class='id identifier rubyid_filename'>filename</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span> <span class='id identifier rubyid_filename'>filename</span> <span class='ivar'>@sources</span><span class='period'>.</span><span class='id identifier rubyid_src_for'>src_for</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span> <span class='ivar'>@env</span><span class='rparen'>)</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> </div> <div id="footer"> Generated on Fri Mar 18 15:12:13 2016 by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a> 0.8.7.6 (ruby-2.2.1). </div> </body> </html>