asset_hat 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/HISTORY +38 -19
  2. data/README.rdoc +99 -41
  3. data/Rakefile +17 -10
  4. data/VERSION.yml +3 -3
  5. data/app/helpers/asset_hat_helper.rb +40 -20
  6. data/asset_hat.gemspec +105 -101
  7. data/doc/classes/AssetHat.html +173 -59
  8. data/doc/classes/AssetHat/CSS.html +35 -26
  9. data/doc/classes/AssetHat/CSS/Engines.html +13 -12
  10. data/doc/classes/AssetHat/JS.html +11 -11
  11. data/doc/classes/AssetHat/JS/Engines.html +10 -10
  12. data/doc/classes/AssetHat/JS/Vendors.html +9 -5
  13. data/doc/classes/AssetHatHelper.html +18 -14
  14. data/doc/created.rid +1 -1
  15. data/doc/files/HISTORY.html +66 -24
  16. data/doc/files/LICENSE.html +1 -1
  17. data/doc/files/README_rdoc.html +112 -37
  18. data/doc/files/app/helpers/asset_hat_helper_rb.html +1 -1
  19. data/doc/files/lib/asset_hat/capistrano_rb.html +1 -1
  20. data/doc/files/lib/asset_hat/css_rb.html +1 -1
  21. data/doc/files/lib/asset_hat/js/vendors_rb.html +1 -1
  22. data/doc/files/lib/asset_hat/js_rb.html +1 -1
  23. data/doc/files/lib/asset_hat/tasks/css_rb.html +1 -1
  24. data/doc/files/lib/asset_hat/tasks/js_rb.html +1 -1
  25. data/doc/files/lib/asset_hat/tasks_rb.html +1 -1
  26. data/doc/files/lib/asset_hat/vcs_rb.html +1 -1
  27. data/doc/files/lib/asset_hat/version_rb.html +1 -1
  28. data/doc/files/lib/asset_hat_rb.html +1 -1
  29. data/doc/fr_method_index.html +54 -46
  30. data/lib/asset_hat.rb +100 -16
  31. data/lib/asset_hat/capistrano.rb +4 -3
  32. data/lib/asset_hat/css.rb +69 -20
  33. data/lib/asset_hat/js.rb +2 -2
  34. data/lib/asset_hat/js/vendors.rb +14 -10
  35. data/lib/asset_hat/tasks.rb +22 -3
  36. data/lib/asset_hat/tasks/css.rb +118 -74
  37. data/lib/asset_hat/tasks/js.rb +79 -35
  38. data/lib/asset_hat/vcs.rb +19 -0
  39. data/public/stylesheets/bundles/ssl/css-bundle-1.min.css +3 -0
  40. data/public/stylesheets/bundles/ssl/css-bundle-2.min.css +3 -0
  41. data/public/stylesheets/bundles/ssl/css-bundle-3.min.css +3 -0
  42. data/rails/init.rb +1 -16
  43. data/test/asset_hat_helper_test.rb +172 -28
  44. data/test/asset_hat_test.rb +167 -25
  45. metadata +54 -21
  46. data/.gitignore +0 -2
@@ -46,10 +46,10 @@
46
46
  <h2>Methods</h2>
47
47
  <h3>public class</h3>
48
48
  <ol>
49
- <li><a href="#M000014">add_asset_commit_ids</a></li>
50
- <li><a href="#M000015">add_asset_hosts</a></li>
51
- <li><a href="#M000012">min_filepath</a></li>
52
- <li><a href="#M000013">minify</a></li>
49
+ <li><a href="#M000018">add_asset_commit_ids</a></li>
50
+ <li><a href="#M000019">add_asset_hosts</a></li>
51
+ <li><a href="#M000016">min_filepath</a></li>
52
+ <li><a href="#M000017">minify</a></li>
53
53
  </ol>
54
54
  </div>
55
55
  <div id='section'>
@@ -76,8 +76,8 @@
76
76
  </div>
77
77
  <div id='methods'>
78
78
  <h2>Public class methods</h2>
79
- <div class='method public-class' id='method-M000014'>
80
- <a name='M000014'></a>
79
+ <div class='method public-class' id='method-M000018'>
80
+ <a name='M000018'></a>
81
81
  <div class='synopsis'>
82
82
  <span class='name'>add_asset_commit_ids</span>
83
83
  <span class='arguments'>(css)</span>
@@ -86,24 +86,24 @@
86
86
  <p>
87
87
  Given a string containing <a href="CSS.html">CSS</a>, appends each
88
88
  referenced asset&#8217;s last commit ID to its URL, e.g., <tt>background:
89
- url(/images/foo.png?ab12cd34e)</tt>. This enables cache busting: If the
89
+ url(/images/foo.png?ab12cd3)</tt>. This enables cache busting: If the
90
90
  user&#8217;s browser has cached a copy of foo.png from a previous
91
91
  deployment, this new URL forces the browser to ignore that cache and
92
92
  request the latest version.
93
93
  </p>
94
94
  </div>
95
95
  <div class='source'>
96
- <a class='source-toggle' href='#' onclick="toggleCode('M000014-source'); return false">
96
+ <a class='source-toggle' href='#' onclick="toggleCode('M000018-source'); return false">
97
97
  [show source]
98
98
  </a>
99
- <pre id='M000014-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 43</span>&#x000A;43: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">add_asset_commit_ids</span>(<span class="ruby-identifier">css</span>)&#x000A;44: <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/url[\s]*\((\/(images|htc)\/[^)]+)\)/</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>&#x000A;45: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">$1</span>&#x000A;46: &#x000A;47: <span class="ruby-comment cmt"># Get absolute path</span>&#x000A;48: <span class="ruby-identifier">filepath</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">ASSETS_DIR</span>, <span class="ruby-identifier">src</span>)&#x000A;49: &#x000A;50: <span class="ruby-comment cmt"># Convert to relative path</span>&#x000A;51: <span class="ruby-identifier">filepath</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-node">/^#{FileUtils.pwd}#{File::SEPARATOR}/</span>, <span class="ruby-value str">''</span>)&#x000A;52: &#x000A;53: <span class="ruby-identifier">commit_id</span> = <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">last_commit_id</span>(<span class="ruby-identifier">filepath</span>)&#x000A;54: <span class="ruby-identifier">commit_id</span>.<span class="ruby-identifier">present?</span> <span class="ruby-value">? </span><span class="ruby-node">&quot;url(#{src}?#{commit_id})&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-node">&quot;url(#{src})&quot;</span>&#x000A;55: <span class="ruby-keyword kw">end</span>&#x000A;56: <span class="ruby-keyword kw">end</span></pre>
99
+ <pre id='M000018-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 43</span>&#x000A;43: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">add_asset_commit_ids</span>(<span class="ruby-identifier">css</span>)&#x000A;44: <span class="ruby-identifier">update_css_urls</span>(<span class="ruby-identifier">css</span>, <span class="ruby-node">%w[images htc]</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">src</span>, <span class="ruby-identifier">quote</span><span class="ruby-operator">|</span>&#x000A;45: <span class="ruby-comment cmt"># Get absolute path</span>&#x000A;46: <span class="ruby-identifier">filepath</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">ASSETS_DIR</span>, <span class="ruby-identifier">src</span>)&#x000A;47: &#x000A;48: <span class="ruby-comment cmt"># Convert to relative path</span>&#x000A;49: <span class="ruby-identifier">filepath</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-node">/^#{FileUtils.pwd}#{File::SEPARATOR}/</span>, <span class="ruby-value str">''</span>)&#x000A;50: &#x000A;51: <span class="ruby-identifier">commit_id</span> = <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">last_commit_id</span>(<span class="ruby-identifier">filepath</span>)&#x000A;52: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">commit_id</span>.<span class="ruby-identifier">present?</span>&#x000A;53: <span class="ruby-node">&quot;url(#{quote}#{src}#{src =~ /\?/ ? '&amp;' : '?'}#{commit_id}#{quote})&quot;</span>&#x000A;54: <span class="ruby-keyword kw">else</span>&#x000A;55: <span class="ruby-node">&quot;url(#{quote}#{src}#{quote})&quot;</span>&#x000A;56: <span class="ruby-keyword kw">end</span>&#x000A;57: <span class="ruby-keyword kw">end</span>&#x000A;58: <span class="ruby-keyword kw">end</span></pre>
100
100
  </div>
101
101
  </div>
102
- <div class='method public-class' id='method-M000015'>
103
- <a name='M000015'></a>
102
+ <div class='method public-class' id='method-M000019'>
103
+ <a name='M000019'></a>
104
104
  <div class='synopsis'>
105
105
  <span class='name'>add_asset_hosts</span>
106
- <span class='arguments'>(css, asset_host)</span>
106
+ <span class='arguments'>(css, asset_host, options={})</span>
107
107
  </div>
108
108
  <div class='description'>
109
109
  <p>
@@ -114,8 +114,8 @@
114
114
 
115
115
  </li>
116
116
  <li>A string containing the app&#8217;s asset host, e.g.,
117
- &#8216;http://assets%d.example.com&#8217;. This value is typically taken
118
- from <tt>config.action_controller.asset_host</tt> in the app&#8217;s
117
+ &#8216;http://cdn%d.example.com&#8217;. This value is typically taken from
118
+ <tt>config.action_controller.asset_host</tt> in the app&#8217;s
119
119
  <tt>config/environments/production.rb</tt>.
120
120
 
121
121
  </li>
@@ -123,19 +123,28 @@
123
123
  <p>
124
124
  An asset host is added to every image URL in the <a
125
125
  href="CSS.html">CSS</a>, e.g., <tt>background:
126
- url(http://assets2.example.com/images/foo.png)</tt>; if <tt>%d</tt> in the
126
+ url(http://cdn2.example.com/images/foo.png)</tt>; if <tt>%d</tt> in the
127
127
  asset host, it is replaced with an arbitrary number in 0-3, inclusive.
128
128
  </p>
129
+ <p>
130
+ Options:
131
+ </p>
132
+ <dl>
133
+ <dt>ssl</dt><dd>Set to <tt>true</tt> to simulate a request via SSL. Defaults to
134
+ <tt>false</tt>.
135
+
136
+ </dd>
137
+ </dl>
129
138
  </div>
130
139
  <div class='source'>
131
- <a class='source-toggle' href='#' onclick="toggleCode('M000015-source'); return false">
140
+ <a class='source-toggle' href='#' onclick="toggleCode('M000019-source'); return false">
132
141
  [show source]
133
142
  </a>
134
- <pre id='M000015-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 70</span>&#x000A;70: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">add_asset_hosts</span>(<span class="ruby-identifier">css</span>, <span class="ruby-identifier">asset_host</span>)&#x000A;71: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">asset_host</span>.<span class="ruby-identifier">blank?</span>&#x000A;72: <span class="ruby-identifier">css</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/url[\s]*\((\/images\/[^)]+)\)/</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>&#x000A;73: <span class="ruby-comment cmt"># N.B.: The `/htc/` directory is excluded because IE 6, by default,</span>&#x000A;74: <span class="ruby-comment cmt"># refuses to run .htc files (e.g., TwinHelix's iepngfix.htc) from</span>&#x000A;75: <span class="ruby-comment cmt"># other domains, including CDN subdomains.</span>&#x000A;76: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">$1</span>&#x000A;77: <span class="ruby-node">&quot;url(#{(asset_host =~ /%d/) ? asset_host % (src.hash % 4) : asset_host}#{src})&quot;</span>&#x000A;78: <span class="ruby-keyword kw">end</span>&#x000A;79: <span class="ruby-keyword kw">end</span></pre>
143
+ <pre id='M000019-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 77</span>&#x000A;77: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">add_asset_hosts</span>(<span class="ruby-identifier">css</span>, <span class="ruby-identifier">asset_host</span>, <span class="ruby-identifier">options</span>={})&#x000A;78: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">css</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">asset_host</span>.<span class="ruby-identifier">blank?</span>&#x000A;79: &#x000A;80: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">:ssl</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>)&#x000A;81: &#x000A;82: <span class="ruby-identifier">update_css_urls</span>(<span class="ruby-identifier">css</span>, <span class="ruby-node">%w[images]</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">src</span>, <span class="ruby-identifier">quote</span><span class="ruby-operator">|</span>&#x000A;83: <span class="ruby-identifier">computed_asset_host</span> = <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">compute_asset_host</span>(&#x000A;84: <span class="ruby-identifier">asset_host</span>, <span class="ruby-identifier">src</span>, <span class="ruby-identifier">options</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-identifier">:ssl</span>))&#x000A;85: <span class="ruby-node">&quot;url(#{quote}#{computed_asset_host}#{src}#{quote})&quot;</span>&#x000A;86: <span class="ruby-keyword kw">end</span>&#x000A;87: <span class="ruby-keyword kw">end</span></pre>
135
144
  </div>
136
145
  </div>
137
- <div class='method public-class' id='method-M000012'>
138
- <a name='M000012'></a>
146
+ <div class='method public-class' id='method-M000016'>
147
+ <a name='M000016'></a>
139
148
  <div class='synopsis'>
140
149
  <span class='name'>min_filepath</span>
141
150
  <span class='arguments'>(filepath)</span>
@@ -148,14 +157,14 @@
148
157
  <pre>AssetHat::CSS.min_filepath('public/stylesheets/bundles/application.css')&#x000A; # =&gt; 'public/stylesheets/bundles/application.min.css'</pre>
149
158
  </div>
150
159
  <div class='source'>
151
- <a class='source-toggle' href='#' onclick="toggleCode('M000012-source'); return false">
160
+ <a class='source-toggle' href='#' onclick="toggleCode('M000016-source'); return false">
152
161
  [show source]
153
162
  </a>
154
- <pre id='M000012-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 14</span>&#x000A;14: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">min_filepath</span>(<span class="ruby-identifier">filepath</span>)&#x000A;15: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">min_filepath</span>(<span class="ruby-identifier">filepath</span>, <span class="ruby-value str">'css'</span>)&#x000A;16: <span class="ruby-keyword kw">end</span></pre>
163
+ <pre id='M000016-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 14</span>&#x000A;14: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">min_filepath</span>(<span class="ruby-identifier">filepath</span>)&#x000A;15: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">min_filepath</span>(<span class="ruby-identifier">filepath</span>, <span class="ruby-value str">'css'</span>)&#x000A;16: <span class="ruby-keyword kw">end</span></pre>
155
164
  </div>
156
165
  </div>
157
- <div class='method public-class' id='method-M000013'>
158
- <a name='M000013'></a>
166
+ <div class='method public-class' id='method-M000017'>
167
+ <a name='M000017'></a>
159
168
  <div class='synopsis'>
160
169
  <span class='name'>minify</span>
161
170
  <span class='arguments'>(input_string, options={})</span>
@@ -168,17 +177,17 @@
168
177
  <dl>
169
178
  <dt>engine</dt><dd>Default is <tt>:cssmin</tt>; see <a
170
179
  href=CSS/Engines.html#method-c-cssmin><a
171
- href="CSS/Engines.html#M000017">Engines.cssmin</a></a>. Allowed values are
180
+ href="CSS/Engines.html#M000021">Engines.cssmin</a></a>. Allowed values are
172
181
  in ENGINES.
173
182
 
174
183
  </dd>
175
184
  </dl>
176
185
  </div>
177
186
  <div class='source'>
178
- <a class='source-toggle' href='#' onclick="toggleCode('M000013-source'); return false">
187
+ <a class='source-toggle' href='#' onclick="toggleCode('M000017-source'); return false">
179
188
  [show source]
180
189
  </a>
181
- <pre id='M000013-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 23</span>&#x000A;23: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">minify</span>(<span class="ruby-identifier">input_string</span>, <span class="ruby-identifier">options</span>={})&#x000A;24: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">:engine</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">:cssmin</span>)&#x000A;25: &#x000A;26: <span class="ruby-identifier">engine</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:engine</span>].<span class="ruby-identifier">to_sym</span>&#x000A;27: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">ENGINES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">engine</span>)&#x000A;28: <span class="ruby-identifier">raise</span> <span class="ruby-node">%Q{&#x000A;29: Unknown CSS minification engine '#{engine}'.&#x000A;30: Allowed: #{ENGINES.map{ |e| &quot;'#{e}'&quot; }.join(', ')}&#x000A;31: }</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\s+/</span>, <span class="ruby-value str">' '</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">return</span>&#x000A;32: <span class="ruby-keyword kw">end</span>&#x000A;33: &#x000A;34: <span class="ruby-constant">AssetHat</span><span class="ruby-operator">::</span><span class="ruby-constant">CSS</span><span class="ruby-operator">::</span><span class="ruby-constant">Engines</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">engine</span>, <span class="ruby-identifier">input_string</span>)&#x000A;35: <span class="ruby-keyword kw">end</span></pre>
190
+ <pre id='M000017-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 23</span>&#x000A;23: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">minify</span>(<span class="ruby-identifier">input_string</span>, <span class="ruby-identifier">options</span>={})&#x000A;24: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">:engine</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">:cssmin</span>)&#x000A;25: &#x000A;26: <span class="ruby-identifier">engine</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:engine</span>].<span class="ruby-identifier">to_sym</span>&#x000A;27: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">ENGINES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">engine</span>)&#x000A;28: <span class="ruby-identifier">raise</span> <span class="ruby-node">%{&#x000A;29: Unknown CSS minification engine '#{engine}'.&#x000A;30: Allowed: #{ENGINES.map{ |e| &quot;'#{e}'&quot; }.join(', ')}&#x000A;31: }</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\s+/</span>, <span class="ruby-value str">' '</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">return</span>&#x000A;32: <span class="ruby-keyword kw">end</span>&#x000A;33: &#x000A;34: <span class="ruby-constant">AssetHat</span><span class="ruby-operator">::</span><span class="ruby-constant">CSS</span><span class="ruby-operator">::</span><span class="ruby-constant">Engines</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">engine</span>, <span class="ruby-identifier">input_string</span>).<span class="ruby-identifier">strip</span>&#x000A;35: <span class="ruby-keyword kw">end</span></pre>
182
191
  </div>
183
192
  </div>
184
193
  </div>
@@ -39,29 +39,30 @@
39
39
  <div id='text'>
40
40
  <div id='description'>
41
41
  <p>
42
- Swappable <a href="../CSS.html">CSS</a> minification engines.
42
+ Swappable <a href="../CSS.html">CSS</a> minification engines. Each accepts
43
+ and returns a string.
43
44
  </p>
44
45
  </div>
45
46
  <div id='method-list'>
46
47
  <h2>Methods</h2>
47
48
  <h3>public class</h3>
48
49
  <ol>
49
- <li><a href="#M000017">cssmin</a></li>
50
- <li><a href="#M000016">weak</a></li>
50
+ <li><a href="#M000021">cssmin</a></li>
51
+ <li><a href="#M000020">weak</a></li>
51
52
  </ol>
52
53
  </div>
53
54
  <div id='section'>
54
55
  <div id='methods'>
55
56
  <h2>Public class methods</h2>
56
- <div class='method public-class' id='method-M000017'>
57
- <a name='M000017'></a>
57
+ <div class='method public-class' id='method-M000021'>
58
+ <a name='M000021'></a>
58
59
  <div class='synopsis'>
59
60
  <span class='name'>cssmin</span>
60
61
  <span class='arguments'>(input_string)</span>
61
62
  </div>
62
63
  <div class='description'>
63
64
  <p>
64
- <a href="../CSS.html">CSS</a> minification engine that simply uses the
65
+ <a href="../CSS.html">CSS</a> minification engine that mostly uses the
65
66
  CSSMin gem, a Ruby port of Lecomte&#8217;s YUI Compressor and
66
67
  Schlueter&#8217;s PHP cssmin.
67
68
  </p>
@@ -78,14 +79,14 @@
78
79
  </ul>
79
80
  </div>
80
81
  <div class='source'>
81
- <a class='source-toggle' href='#' onclick="toggleCode('M000017-source'); return false">
82
+ <a class='source-toggle' href='#' onclick="toggleCode('M000021-source'); return false">
82
83
  [show source]
83
84
  </a>
84
- <pre id='M000017-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 108</span>&#x000A;108: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">cssmin</span>(<span class="ruby-identifier">input_string</span>)&#x000A;109: <span class="ruby-constant">CSSMin</span>.<span class="ruby-identifier">minify</span>(<span class="ruby-identifier">input_string</span>)&#x000A;110: <span class="ruby-keyword kw">end</span></pre>
85
+ <pre id='M000021-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 116</span>&#x000A;116: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">cssmin</span>(<span class="ruby-identifier">input_string</span>)&#x000A;117: <span class="ruby-identifier">output</span> = <span class="ruby-constant">CSSMin</span>.<span class="ruby-identifier">minify</span>(<span class="ruby-identifier">input_string</span>)&#x000A;118: &#x000A;119: <span class="ruby-comment cmt"># Remove rules that have empty declaration blocks</span>&#x000A;120: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\}([^\}]+\{;\}){1,}/</span>, <span class="ruby-value str">'}'</span>)&#x000A;121: &#x000A;122: <span class="ruby-identifier">output</span>&#x000A;123: <span class="ruby-keyword kw">end</span></pre>
85
86
  </div>
86
87
  </div>
87
- <div class='method public-class' id='method-M000016'>
88
- <a name='M000016'></a>
88
+ <div class='method public-class' id='method-M000020'>
89
+ <a name='M000020'></a>
89
90
  <div class='synopsis'>
90
91
  <span class='name'>weak</span>
91
92
  <span class='arguments'>(input_string)</span>
@@ -99,10 +100,10 @@
99
100
  </p>
100
101
  </div>
101
102
  <div class='source'>
102
- <a class='source-toggle' href='#' onclick="toggleCode('M000016-source'); return false">
103
+ <a class='source-toggle' href='#' onclick="toggleCode('M000020-source'); return false">
103
104
  [show source]
104
105
  </a>
105
- <pre id='M000016-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 86</span>&#x000A; 86: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">weak</span>(<span class="ruby-identifier">input_string</span>)&#x000A; 87: <span class="ruby-identifier">input</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">input_string</span>)&#x000A; 88: <span class="ruby-identifier">output</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>&#x000A; 89: &#x000A; 90: <span class="ruby-identifier">input</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>&#x000A; 91: <span class="ruby-comment cmt"># Remove indentation and trailing whitespace (including line breaks)</span>&#x000A; 92: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip!</span>&#x000A; 93: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">blank?</span>&#x000A; 94: &#x000A; 95: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">line</span>&#x000A; 96: <span class="ruby-keyword kw">end</span>&#x000A; 97: &#x000A; 98: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">rewind</span>&#x000A; 99: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">read</span>&#x000A;100: <span class="ruby-keyword kw">end</span></pre>
106
+ <pre id='M000020-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 94</span>&#x000A; 94: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">weak</span>(<span class="ruby-identifier">input_string</span>)&#x000A; 95: <span class="ruby-identifier">input</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">input_string</span>)&#x000A; 96: <span class="ruby-identifier">output</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>&#x000A; 97: &#x000A; 98: <span class="ruby-identifier">input</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>&#x000A; 99: <span class="ruby-comment cmt"># Remove indentation and trailing whitespace (including line breaks)</span>&#x000A;100: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip!</span>&#x000A;101: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">blank?</span>&#x000A;102: &#x000A;103: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">line</span>&#x000A;104: <span class="ruby-keyword kw">end</span>&#x000A;105: &#x000A;106: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">rewind</span>&#x000A;107: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">read</span>&#x000A;108: <span class="ruby-keyword kw">end</span></pre>
106
107
  </div>
107
108
  </div>
108
109
  </div>
@@ -52,8 +52,8 @@
52
52
  <h2>Methods</h2>
53
53
  <h3>public class</h3>
54
54
  <ol>
55
- <li><a href="#M000018">min_filepath</a></li>
56
- <li><a href="#M000019">minify</a></li>
55
+ <li><a href="#M000022">min_filepath</a></li>
56
+ <li><a href="#M000023">minify</a></li>
57
57
  </ol>
58
58
  </div>
59
59
  <div id='section'>
@@ -92,8 +92,8 @@
92
92
  </div>
93
93
  <div id='methods'>
94
94
  <h2>Public class methods</h2>
95
- <div class='method public-class' id='method-M000018'>
96
- <a name='M000018'></a>
95
+ <div class='method public-class' id='method-M000022'>
96
+ <a name='M000022'></a>
97
97
  <div class='synopsis'>
98
98
  <span class='name'>min_filepath</span>
99
99
  <span class='arguments'>(filepath)</span>
@@ -106,14 +106,14 @@
106
106
  <pre>AssetHat::JS.min_filepath('public/javascripts/bundles/application.js')&#x000A; # =&gt; 'public/javascripts/bundles/application.min.js'</pre>
107
107
  </div>
108
108
  <div class='source'>
109
- <a class='source-toggle' href='#' onclick="toggleCode('M000018-source'); return false">
109
+ <a class='source-toggle' href='#' onclick="toggleCode('M000022-source'); return false">
110
110
  [show source]
111
111
  </a>
112
- <pre id='M000018-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 19</span>&#x000A;19: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">min_filepath</span>(<span class="ruby-identifier">filepath</span>)&#x000A;20: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">min_filepath</span>(<span class="ruby-identifier">filepath</span>, <span class="ruby-value str">'js'</span>)&#x000A;21: <span class="ruby-keyword kw">end</span></pre>
112
+ <pre id='M000022-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 19</span>&#x000A;19: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">min_filepath</span>(<span class="ruby-identifier">filepath</span>)&#x000A;20: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">min_filepath</span>(<span class="ruby-identifier">filepath</span>, <span class="ruby-value str">'js'</span>)&#x000A;21: <span class="ruby-keyword kw">end</span></pre>
113
113
  </div>
114
114
  </div>
115
- <div class='method public-class' id='method-M000019'>
116
- <a name='M000019'></a>
115
+ <div class='method public-class' id='method-M000023'>
116
+ <a name='M000023'></a>
117
117
  <div class='synopsis'>
118
118
  <span class='name'>minify</span>
119
119
  <span class='arguments'>(input_string, options={})</span>
@@ -125,17 +125,17 @@
125
125
  </p>
126
126
  <dl>
127
127
  <dt>engine</dt><dd>Default is <tt>:jsmin</tt>; see <a href=JS/Engines.html#method-c-jsmin><a
128
- href="JS/Engines.html#M000022">Engines.jsmin</a></a>. Allowed values are in
128
+ href="JS/Engines.html#M000026">Engines.jsmin</a></a>. Allowed values are in
129
129
  ENGINES.
130
130
 
131
131
  </dd>
132
132
  </dl>
133
133
  </div>
134
134
  <div class='source'>
135
- <a class='source-toggle' href='#' onclick="toggleCode('M000019-source'); return false">
135
+ <a class='source-toggle' href='#' onclick="toggleCode('M000023-source'); return false">
136
136
  [show source]
137
137
  </a>
138
- <pre id='M000019-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 28</span>&#x000A;28: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">minify</span>(<span class="ruby-identifier">input_string</span>, <span class="ruby-identifier">options</span>={})&#x000A;29: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">:engine</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">:jsmin</span>)&#x000A;30: &#x000A;31: <span class="ruby-identifier">engine</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:engine</span>].<span class="ruby-identifier">to_sym</span>&#x000A;32: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">ENGINES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">engine</span>)&#x000A;33: <span class="ruby-identifier">raise</span> <span class="ruby-node">%Q{&#x000A;34: Unknown JS minification engine '#{engine}'.&#x000A;35: Allowed: #{ENGINES.map{ |e| &quot;'#{e}'&quot; }.join(', ')}&#x000A;36: }</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\s+/</span>, <span class="ruby-value str">' '</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">return</span>&#x000A;37: <span class="ruby-keyword kw">end</span>&#x000A;38: &#x000A;39: <span class="ruby-constant">AssetHat</span><span class="ruby-operator">::</span><span class="ruby-constant">JS</span><span class="ruby-operator">::</span><span class="ruby-constant">Engines</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">engine</span>, <span class="ruby-identifier">input_string</span>)&#x000A;40: <span class="ruby-keyword kw">end</span></pre>
138
+ <pre id='M000023-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 28</span>&#x000A;28: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">minify</span>(<span class="ruby-identifier">input_string</span>, <span class="ruby-identifier">options</span>={})&#x000A;29: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">:engine</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">:jsmin</span>)&#x000A;30: &#x000A;31: <span class="ruby-identifier">engine</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:engine</span>].<span class="ruby-identifier">to_sym</span>&#x000A;32: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">ENGINES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">engine</span>)&#x000A;33: <span class="ruby-identifier">raise</span> <span class="ruby-node">%{&#x000A;34: Unknown JS minification engine '#{engine}'.&#x000A;35: Allowed: #{ENGINES.map{ |e| &quot;'#{e}'&quot; }.join(', ')}&#x000A;36: }</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\s+/</span>, <span class="ruby-value str">' '</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">return</span>&#x000A;37: <span class="ruby-keyword kw">end</span>&#x000A;38: &#x000A;39: <span class="ruby-constant">AssetHat</span><span class="ruby-operator">::</span><span class="ruby-constant">JS</span><span class="ruby-operator">::</span><span class="ruby-constant">Engines</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">engine</span>, <span class="ruby-identifier">input_string</span>).<span class="ruby-identifier">strip</span>&#x000A;40: <span class="ruby-keyword kw">end</span></pre>
139
139
  </div>
140
140
  </div>
141
141
  </div>
@@ -46,15 +46,15 @@
46
46
  <h2>Methods</h2>
47
47
  <h3>public class</h3>
48
48
  <ol>
49
- <li><a href="#M000022">jsmin</a></li>
50
- <li><a href="#M000021">weak</a></li>
49
+ <li><a href="#M000026">jsmin</a></li>
50
+ <li><a href="#M000025">weak</a></li>
51
51
  </ol>
52
52
  </div>
53
53
  <div id='section'>
54
54
  <div id='methods'>
55
55
  <h2>Public class methods</h2>
56
- <div class='method public-class' id='method-M000022'>
57
- <a name='M000022'></a>
56
+ <div class='method public-class' id='method-M000026'>
57
+ <a name='M000026'></a>
58
58
  <div class='synopsis'>
59
59
  <span class='name'>jsmin</span>
60
60
  <span class='arguments'>(input_string)</span>
@@ -77,14 +77,14 @@
77
77
  </ul>
78
78
  </div>
79
79
  <div class='source'>
80
- <a class='source-toggle' href='#' onclick="toggleCode('M000022-source'); return false">
80
+ <a class='source-toggle' href='#' onclick="toggleCode('M000026-source'); return false">
81
81
  [show source]
82
82
  </a>
83
- <pre id='M000022-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 79</span>&#x000A;79: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">jsmin</span>(<span class="ruby-identifier">input_string</span>)&#x000A;80: <span class="ruby-constant">JSMin</span>.<span class="ruby-identifier">minify</span>(<span class="ruby-identifier">input_string</span>)&#x000A;81: <span class="ruby-keyword kw">end</span></pre>
83
+ <pre id='M000026-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 79</span>&#x000A;79: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">jsmin</span>(<span class="ruby-identifier">input_string</span>)&#x000A;80: <span class="ruby-constant">JSMin</span>.<span class="ruby-identifier">minify</span>(<span class="ruby-identifier">input_string</span>)&#x000A;81: <span class="ruby-keyword kw">end</span></pre>
84
84
  </div>
85
85
  </div>
86
- <div class='method public-class' id='method-M000021'>
87
- <a name='M000021'></a>
86
+ <div class='method public-class' id='method-M000025'>
87
+ <a name='M000025'></a>
88
88
  <div class='synopsis'>
89
89
  <span class='name'>weak</span>
90
90
  <span class='arguments'>(input_string)</span>
@@ -103,10 +103,10 @@
103
103
  </ul>
104
104
  </div>
105
105
  <div class='source'>
106
- <a class='source-toggle' href='#' onclick="toggleCode('M000021-source'); return false">
106
+ <a class='source-toggle' href='#' onclick="toggleCode('M000025-source'); return false">
107
107
  [show source]
108
108
  </a>
109
- <pre id='M000021-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 48</span>&#x000A;48: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">weak</span>(<span class="ruby-identifier">input_string</span>)&#x000A;49: <span class="ruby-identifier">input</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">input_string</span>)&#x000A;50: <span class="ruby-identifier">output</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>&#x000A;51: &#x000A;52: <span class="ruby-identifier">input</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>&#x000A;53: <span class="ruby-comment cmt"># Remove indentation and trailing whitespace</span>&#x000A;54: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip!</span>&#x000A;55: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">blank?</span>&#x000A;56: &#x000A;57: <span class="ruby-comment cmt"># Skip single-line comments</span>&#x000A;58: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span>(<span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\/\//</span>).<span class="ruby-identifier">nil?</span>&#x000A;59: <span class="ruby-comment cmt"># TODO: Also skip single-line comments that began mid-line, but not</span>&#x000A;60: <span class="ruby-comment cmt"># inside a string or regex</span>&#x000A;61: &#x000A;62: <span class="ruby-comment cmt"># TODO: Skip multi-line comments</span>&#x000A;63: <span class="ruby-comment cmt"># - Should not strip from within a string or regex</span>&#x000A;64: <span class="ruby-comment cmt"># - Should not strip comments that begin with `/*!` (e.g., licenses)</span>&#x000A;65: &#x000A;66: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">line</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>)&#x000A;67: <span class="ruby-keyword kw">end</span>&#x000A;68: &#x000A;69: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">rewind</span>&#x000A;70: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">read</span>&#x000A;71: <span class="ruby-keyword kw">end</span></pre>
109
+ <pre id='M000025-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 48</span>&#x000A;48: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">weak</span>(<span class="ruby-identifier">input_string</span>)&#x000A;49: <span class="ruby-identifier">input</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">input_string</span>)&#x000A;50: <span class="ruby-identifier">output</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>&#x000A;51: &#x000A;52: <span class="ruby-identifier">input</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>&#x000A;53: <span class="ruby-comment cmt"># Remove indentation and trailing whitespace</span>&#x000A;54: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip!</span>&#x000A;55: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">blank?</span>&#x000A;56: &#x000A;57: <span class="ruby-comment cmt"># Skip single-line comments</span>&#x000A;58: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span>(<span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\/\//</span>).<span class="ruby-identifier">nil?</span>&#x000A;59: <span class="ruby-comment cmt"># TODO: Also skip single-line comments that began mid-line, but not</span>&#x000A;60: <span class="ruby-comment cmt"># inside a string or regex</span>&#x000A;61: &#x000A;62: <span class="ruby-comment cmt"># TODO: Skip multi-line comments</span>&#x000A;63: <span class="ruby-comment cmt"># - Should not strip from within a string or regex</span>&#x000A;64: <span class="ruby-comment cmt"># - Should not strip comments that begin with `/*!` (e.g., licenses)</span>&#x000A;65: &#x000A;66: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">line</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>)&#x000A;67: <span class="ruby-keyword kw">end</span>&#x000A;68: &#x000A;69: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">rewind</span>&#x000A;70: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">read</span>&#x000A;71: <span class="ruby-keyword kw">end</span></pre>
110
110
  </div>
111
111
  </div>
112
112
  </div>
@@ -47,7 +47,7 @@
47
47
  <h2>Methods</h2>
48
48
  <h3>public class</h3>
49
49
  <ol>
50
- <li><a href="#M000020">source_for</a></li>
50
+ <li><a href="#M000024">source_for</a></li>
51
51
  </ol>
52
52
  </div>
53
53
  <div id='section'>
@@ -105,8 +105,8 @@
105
105
  </div>
106
106
  <div id='methods'>
107
107
  <h2>Public class methods</h2>
108
- <div class='method public-class' id='method-M000020'>
109
- <a name='M000020'></a>
108
+ <div class='method public-class' id='method-M000024'>
109
+ <a name='M000024'></a>
110
110
  <div class='synopsis'>
111
111
  <span class='name'>source_for</span>
112
112
  <span class='arguments'>(vendor, options={})</span>
@@ -119,6 +119,10 @@
119
119
  <a href="http://code.google.com/apis/ajaxlibs/">Google's CDN</a>. Options:
120
120
  </p>
121
121
  <dl>
122
+ <dt>ssl</dt><dd>Boolean for whether to include vendor <a href="../JS.html">JS</a> via
123
+ HTTPS. Defaults to false.
124
+
125
+ </dd>
122
126
  <dt>version</dt><dd>The vendor version, e.g., &#8216;1.4.0&#8217; for jQuery 1.4. By default,
123
127
  each vendor version is taken from <tt>config/assets.yml</tt>; use this
124
128
  option to override the configuration.
@@ -127,10 +131,10 @@
127
131
  </dl>
128
132
  </div>
129
133
  <div class='source'>
130
- <a class='source-toggle' href='#' onclick="toggleCode('M000020-source'); return false">
134
+ <a class='source-toggle' href='#' onclick="toggleCode('M000024-source'); return false">
131
135
  [show source]
132
136
  </a>
133
- <pre id='M000020-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js/vendors.rb, line 40</span>&#x000A;40: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">source_for</span>(<span class="ruby-identifier">vendor</span>, <span class="ruby-identifier">options</span>={})&#x000A;41: <span class="ruby-identifier">vendor_config</span> =&#x000A;42: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">config</span>[<span class="ruby-value str">'js'</span>][<span class="ruby-value str">'vendors'</span>][<span class="ruby-identifier">vendor</span>.<span class="ruby-identifier">to_s</span>] <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>&#x000A;43: <span class="ruby-identifier">use_local</span> = <span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">consider_all_requests_local</span>&#x000A;44: <span class="ruby-identifier">version</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:version</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">vendor_config</span>[<span class="ruby-value str">'version'</span>] <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>&#x000A;45: &#x000A;46: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">use_local</span>&#x000A;47: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">vendor_config</span>[<span class="ruby-value str">'remote_url'</span>] <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>&#x000A;48: <span class="ruby-keyword kw">end</span>&#x000A;49: &#x000A;50: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">src</span>.<span class="ruby-identifier">blank?</span>&#x000A;51: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">vendor</span>&#x000A;52: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:jquery</span>&#x000A;53: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A;54: </span> <span class="ruby-node">&quot;#{['jquery', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A;55: <span class="ruby-node">&quot;http://ajax.googleapis.com/ajax/libs/jquery/#{version}/jquery.min.js&quot;</span>&#x000A;56: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:jquery_ui</span>&#x000A;57: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A;58: </span> <span class="ruby-node">&quot;#{['jquery-ui', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A;59: <span class="ruby-node">&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/#{version}/jquery-ui.min.js&quot;</span>&#x000A;60: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:prototype</span>&#x000A;61: <span class="ruby-comment cmt"># Prototype currently doesn't provide an official minified version.</span>&#x000A;62: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A;63: </span> <span class="ruby-node">&quot;#{['prototype', version].compact.join('-')}.js&quot;</span> <span class="ruby-operator">:</span>&#x000A;64: <span class="ruby-node">&quot;http://ajax.googleapis.com/ajax/libs/prototype/#{version}/prototype.js&quot;</span>&#x000A;65: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:scriptaculous</span>&#x000A;66: <span class="ruby-comment cmt"># script.aculo.us currently doesn't provide an official minified version.</span>&#x000A;67: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A;68: </span> <span class="ruby-node">&quot;#{['scriptaculous', version].compact.join('-')}.js&quot;</span> <span class="ruby-operator">:</span>&#x000A;69: <span class="ruby-node">&quot;http://ajax.googleapis.com/ajax/libs/scriptaculous/#{version}/scriptaculous.js&quot;</span>&#x000A;70: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:mootools</span>&#x000A;71: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A;72: </span> <span class="ruby-node">&quot;#{['mootools', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A;73: <span class="ruby-node">&quot;http://ajax.googleapis.com/ajax/libs/mootools/#{version}/mootools-yui-compressed.js&quot;</span>&#x000A;74: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:dojo</span>&#x000A;75: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A;76: </span> <span class="ruby-node">&quot;#{['dojo', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A;77: <span class="ruby-node">&quot;http://ajax.googleapis.com/ajax/libs/dojo/#{version}/dojo/dojo.xd.js&quot;</span>&#x000A;78: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:swfobject</span>&#x000A;79: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A;80: </span> <span class="ruby-node">&quot;#{['swfobject', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A;81: <span class="ruby-node">&quot;http://ajax.googleapis.com/ajax/libs/swfobject/#{version}/swfobject.js&quot;</span>&#x000A;82: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:yui</span>&#x000A;83: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A;84: </span> <span class="ruby-node">&quot;#{['yui', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A;85: <span class="ruby-node">&quot;http://ajax.googleapis.com/ajax/libs/yui/#{version}/build/yuiloader/yuiloader-min.js&quot;</span>&#x000A;86: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ext_core</span>&#x000A;87: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A;88: </span> <span class="ruby-node">&quot;#{['ext_core', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A;89: <span class="ruby-node">&quot;http://ajax.googleapis.com/ajax/libs/ext-core/#{version}/ext-core.js&quot;</span>&#x000A;90: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:webfont</span>&#x000A;91: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A;92: </span> <span class="ruby-node">&quot;#{['webfont', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A;93: <span class="ruby-node">&quot;http://ajax.googleapis.com/ajax/libs/webfont/#{version}/webfont.js&quot;</span>&#x000A;94: <span class="ruby-keyword kw">else</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt"># TODO: Write to log</span>&#x000A;95: <span class="ruby-keyword kw">end</span>&#x000A;96: <span class="ruby-keyword kw">end</span>&#x000A;97: &#x000A;98: <span class="ruby-identifier">src</span>&#x000A;99: <span class="ruby-keyword kw">end</span></pre>
137
+ <pre id='M000024-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js/vendors.rb, line 42</span>&#x000A; 42: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">source_for</span>(<span class="ruby-identifier">vendor</span>, <span class="ruby-identifier">options</span>={})&#x000A; 43: <span class="ruby-identifier">vendor_config</span> =&#x000A; 44: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">config</span>[<span class="ruby-value str">'js'</span>][<span class="ruby-value str">'vendors'</span>][<span class="ruby-identifier">vendor</span>.<span class="ruby-identifier">to_s</span>] <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>&#x000A; 45: <span class="ruby-identifier">use_local</span> = <span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">consider_all_requests_local</span>&#x000A; 46: <span class="ruby-identifier">use_ssl</span> = <span class="ruby-operator">!</span><span class="ruby-operator">!</span><span class="ruby-identifier">options</span>[<span class="ruby-identifier">:ssl</span>]&#x000A; 47: <span class="ruby-identifier">version</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:version</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">vendor_config</span>[<span class="ruby-value str">'version'</span>] <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>&#x000A; 48: &#x000A; 49: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">use_local</span>&#x000A; 50: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">vendor_config</span>[<span class="ruby-value str">'remote_url'</span>] <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>&#x000A; 51: <span class="ruby-identifier">src</span> = (<span class="ruby-identifier">vendor_config</span>[<span class="ruby-value str">'remote_ssl_url'</span>] <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">use_ssl</span>&#x000A; 52: <span class="ruby-keyword kw">end</span>&#x000A; 53: &#x000A; 54: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">src</span>.<span class="ruby-identifier">blank?</span>&#x000A; 55: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">vendor</span>&#x000A; 56: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:jquery</span>&#x000A; 57: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A; 58: </span> <span class="ruby-node">&quot;#{['jquery', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A; 59: <span class="ruby-node">&quot;http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/jquery/#{version}/jquery.min.js&quot;</span>&#x000A; 60: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:jquery_ui</span>&#x000A; 61: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A; 62: </span> <span class="ruby-node">&quot;#{['jquery-ui', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A; 63: <span class="ruby-node">&quot;http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/jqueryui/#{version}/jquery-ui.min.js&quot;</span>&#x000A; 64: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:prototype</span>&#x000A; 65: <span class="ruby-comment cmt"># Prototype currently doesn't provide an official minified version.</span>&#x000A; 66: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A; 67: </span> <span class="ruby-node">&quot;#{['prototype', version].compact.join('-')}.js&quot;</span> <span class="ruby-operator">:</span>&#x000A; 68: <span class="ruby-node">&quot;http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/prototype/#{version}/prototype.js&quot;</span>&#x000A; 69: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:scriptaculous</span>&#x000A; 70: <span class="ruby-comment cmt"># script.aculo.us currently doesn't provide an official minified version.</span>&#x000A; 71: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A; 72: </span> <span class="ruby-node">&quot;#{['scriptaculous', version].compact.join('-')}.js&quot;</span> <span class="ruby-operator">:</span>&#x000A; 73: <span class="ruby-node">&quot;http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/scriptaculous/#{version}/scriptaculous.js&quot;</span>&#x000A; 74: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:mootools</span>&#x000A; 75: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A; 76: </span> <span class="ruby-node">&quot;#{['mootools', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A; 77: <span class="ruby-node">&quot;http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/mootools/#{version}/mootools-yui-compressed.js&quot;</span>&#x000A; 78: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:dojo</span>&#x000A; 79: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A; 80: </span> <span class="ruby-node">&quot;#{['dojo', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A; 81: <span class="ruby-node">&quot;http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/dojo/#{version}/dojo/dojo.xd.js&quot;</span>&#x000A; 82: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:swfobject</span>&#x000A; 83: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A; 84: </span> <span class="ruby-node">&quot;#{['swfobject', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A; 85: <span class="ruby-node">&quot;http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/swfobject/#{version}/swfobject.js&quot;</span>&#x000A; 86: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:yui</span>&#x000A; 87: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A; 88: </span> <span class="ruby-node">&quot;#{['yui', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A; 89: <span class="ruby-node">&quot;http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/yui/#{version}/build/yuiloader/yuiloader-min.js&quot;</span>&#x000A; 90: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ext_core</span>&#x000A; 91: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A; 92: </span> <span class="ruby-node">&quot;#{['ext_core', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A; 93: <span class="ruby-node">&quot;http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/ext-core/#{version}/ext-core.js&quot;</span>&#x000A; 94: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:webfont</span>&#x000A; 95: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">use_local</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">version</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">?&#x000A; 96: </span> <span class="ruby-node">&quot;#{['webfont', version].compact.join('-')}.min.js&quot;</span> <span class="ruby-operator">:</span>&#x000A; 97: <span class="ruby-node">&quot;http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/webfont/#{version}/webfont.js&quot;</span>&#x000A; 98: <span class="ruby-keyword kw">else</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt"># TODO: Write to log</span>&#x000A; 99: <span class="ruby-keyword kw">end</span>&#x000A;100: <span class="ruby-keyword kw">end</span>&#x000A;101: &#x000A;102: <span class="ruby-identifier">src</span>&#x000A;103: <span class="ruby-keyword kw">end</span></pre>
134
138
  </div>
135
139
  </div>
136
140
  </div>
@@ -47,8 +47,8 @@
47
47
  <h2>Methods</h2>
48
48
  <h3>public instance</h3>
49
49
  <ol>
50
- <li><a href="#M000023">include_css</a></li>
51
- <li><a href="#M000024">include_js</a></li>
50
+ <li><a href="#M000027">include_css</a></li>
51
+ <li><a href="#M000028">include_js</a></li>
52
52
  </ol>
53
53
  </div>
54
54
  <div id='section'>
@@ -66,15 +66,15 @@
66
66
  </div>
67
67
  <div id='methods'>
68
68
  <h2>Public instance methods</h2>
69
- <div class='method public-instance' id='method-M000023'>
70
- <a name='M000023'></a>
69
+ <div class='method public-instance' id='method-M000027'>
70
+ <a name='M000027'></a>
71
71
  <div class='synopsis'>
72
72
  <span class='name'>include_css</span>
73
73
  <span class='arguments'>(*args)</span>
74
74
  </div>
75
75
  <div class='description'>
76
76
  <p>
77
- <tt><a href="AssetHatHelper.html#M000023">include_css</a></tt> is a smart
77
+ <tt><a href="AssetHatHelper.html#M000027">include_css</a></tt> is a smart
78
78
  wrapper for Rails&#8217; <tt>stylesheet_link_tag</tt>. The two can be used
79
79
  together while migrating to <a href="AssetHat.html">AssetHat</a>.
80
80
  </p>
@@ -95,23 +95,27 @@
95
95
  Include multiple stylesheets separately (not as cool):
96
96
  </p>
97
97
  <pre>include_css 'reset', 'application', 'clearfix'&#x000A;=&gt; &lt;link href=&quot;/stylesheets/reset.min.css&quot; ... /&gt;&#x000A; &lt;link href=&quot;/stylesheets/application.min.css&quot; ... /&gt;&#x000A; &lt;link href=&quot;/stylesheets/clearfix.min.css&quot; ... /&gt;</pre>
98
+ <p>
99
+ Include a stylesheet with extra media types:
100
+ </p>
101
+ <pre>include_css 'mobile', :media =&gt; 'handheld,screen,projection'&#x000A;=&gt; &lt;link href=&quot;/stylesheets/mobile.min.css&quot;&#x000A; media=&quot;handheld,screen,projection&quot; ... /&gt;</pre>
98
102
  </div>
99
103
  <div class='source'>
100
- <a class='source-toggle' href='#' onclick="toggleCode('M000023-source'); return false">
104
+ <a class='source-toggle' href='#' onclick="toggleCode('M000027-source'); return false">
101
105
  [show source]
102
106
  </a>
103
- <pre id='M000023-source'> <span class="ruby-comment cmt"># File app/helpers/asset_hat_helper.rb, line 122</span>&#x000A;122: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include_css</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)&#x000A;123: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">blank?</span>&#x000A;124: &#x000A;125: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span> <span class="ruby-operator">||=</span> {}&#x000A;126: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:css</span>] <span class="ruby-operator">||=</span> {}&#x000A;127: <span class="ruby-identifier">cache_key</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">inspect</span>&#x000A;128: &#x000A;129: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">cache?</span> <span class="ruby-operator">||</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:css</span>][<span class="ruby-identifier">cache_key</span>].<span class="ruby-identifier">blank?</span>&#x000A;130: <span class="ruby-comment cmt"># Generate HTML and write to cache</span>&#x000A;131: <span class="ruby-identifier">html</span> = <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:css</span>][<span class="ruby-identifier">cache_key</span>] = <span class="ruby-identifier">include_assets</span>(<span class="ruby-identifier">:css</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)&#x000A;132: <span class="ruby-keyword kw">end</span>&#x000A;133: &#x000A;134: <span class="ruby-identifier">html</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:css</span>][<span class="ruby-identifier">cache_key</span>]&#x000A;135: <span class="ruby-identifier">html</span>&#x000A;136: <span class="ruby-keyword kw">end</span></pre>
107
+ <pre id='M000027-source'> <span class="ruby-comment cmt"># File app/helpers/asset_hat_helper.rb, line 129</span>&#x000A;129: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include_css</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)&#x000A;130: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">blank?</span>&#x000A;131: &#x000A;132: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span> <span class="ruby-operator">||=</span> {}&#x000A;133: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:css</span>] <span class="ruby-operator">||=</span> {}&#x000A;134: &#x000A;135: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">extract_options!</span>&#x000A;136: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">symbolize_keys!</span>.<span class="ruby-identifier">reverse_merge!</span>(&#x000A;137: <span class="ruby-identifier">:media</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'screen,projection'</span>, <span class="ruby-identifier">:ssl</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">ssl?</span>)&#x000A;138: <span class="ruby-identifier">cache_key</span> = (<span class="ruby-identifier">args</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">options</span>]).<span class="ruby-identifier">inspect</span>&#x000A;139: &#x000A;140: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">cache?</span> <span class="ruby-operator">||</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:css</span>][<span class="ruby-identifier">cache_key</span>].<span class="ruby-identifier">blank?</span>&#x000A;141: <span class="ruby-comment cmt"># Generate HTML and write to cache</span>&#x000A;142: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:ssl</span>] <span class="ruby-operator">&amp;&amp;=</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">ssl_asset_host_differs?</span>&#x000A;143: <span class="ruby-identifier">html</span> = <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:css</span>][<span class="ruby-identifier">cache_key</span>] =&#x000A;144: <span class="ruby-identifier">include_assets</span>(<span class="ruby-identifier">:css</span>, <span class="ruby-operator">*</span>(<span class="ruby-identifier">args</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">options</span>]))&#x000A;145: <span class="ruby-keyword kw">end</span>&#x000A;146: &#x000A;147: <span class="ruby-identifier">html</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:css</span>][<span class="ruby-identifier">cache_key</span>]&#x000A;148: <span class="ruby-identifier">html</span>&#x000A;149: <span class="ruby-keyword kw">end</span></pre>
104
108
  </div>
105
109
  </div>
106
- <div class='method public-instance' id='method-M000024'>
107
- <a name='M000024'></a>
110
+ <div class='method public-instance' id='method-M000028'>
111
+ <a name='M000028'></a>
108
112
  <div class='synopsis'>
109
113
  <span class='name'>include_js</span>
110
114
  <span class='arguments'>(*args)</span>
111
115
  </div>
112
116
  <div class='description'>
113
117
  <p>
114
- <tt><a href="AssetHatHelper.html#M000024">include_js</a></tt> is a smart
118
+ <tt><a href="AssetHatHelper.html#M000028">include_js</a></tt> is a smart
115
119
  wrapper for Rails&#8217; <tt>javascript_include_tag</tt>. The two can be
116
120
  used together while migrating to <a href="AssetHat.html">AssetHat</a>.
117
121
  </p>
@@ -126,10 +130,10 @@
126
130
  <p>
127
131
  Include jQuery:
128
132
  </p>
129
- <pre>include_js :jquery # Development/test environment&#x000A;=&gt; &lt;script src=&quot;/javascripts/jquery-VERSION.min.js&quot; ...&gt;&lt;/script&gt;&#x000A;include_js :jquery # Staging/production environment&#x000A;=&gt; &lt;script src=&quot;http://ajax.googleapis.com/.../jquery.min.js&quot; ...&gt;&lt;/script&gt;&#x000A; # Set jQuery versions either in `config/assets.yml`, or by using&#x000A; # `include_js :jquery, :version =&gt; '1.4'`.</pre>
133
+ <pre># Development/test environment:&#x000A;include_js :jquery&#x000A;=&gt; &lt;script src=&quot;/javascripts/jquery-VERSION.min.js&quot; ...&gt;&lt;/script&gt;&#x000A;&#x000A;# Staging/production environment:&#x000A;include_js :jquery&#x000A;=&gt; &lt;script src=&quot;http://ajax.googleapis.com/.../jquery.min.js&quot; ...&gt;&lt;/script&gt;&#x000A; # Set jQuery versions either in `config/assets.yml`, or by using&#x000A; # `include_js :jquery, :version =&gt; '1.4'`.</pre>
130
134
  <p>
131
135
  Include a bundle of JS files (i.e., a concatenated set of files; configure
132
- in config/assets.yml):
136
+ in <tt>config/assets.yml</tt>):
133
137
  </p>
134
138
  <pre>include_js :bundle =&gt; 'application'&#x000A;=&gt; &lt;script src=&quot;/javascripts/bundles/application.min.js&quot; ...&gt;&lt;/script&gt;</pre>
135
139
  <p>
@@ -142,10 +146,10 @@
142
146
  <pre>include_js 'bloombox', 'jquery.cookie', 'jquery.json.min'&#x000A;=&gt; &lt;script src=&quot;/javascripts/bloombox.min.js&quot; ...&gt;&lt;/script&gt;&#x000A; &lt;script src=&quot;/javascripts/jquery.cookie.min.js&quot; ...&gt;&lt;/script&gt;&#x000A; &lt;script src=&quot;/javascripts/jquery.json.min.js&quot; ...&gt;&lt;/script&gt;</pre>
143
147
  </div>
144
148
  <div class='source'>
145
- <a class='source-toggle' href='#' onclick="toggleCode('M000024-source'); return false">
149
+ <a class='source-toggle' href='#' onclick="toggleCode('M000028-source'); return false">
146
150
  [show source]
147
151
  </a>
148
- <pre id='M000024-source'> <span class="ruby-comment cmt"># File app/helpers/asset_hat_helper.rb, line 173</span>&#x000A;173: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include_js</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)&#x000A;174: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">blank?</span>&#x000A;175: &#x000A;176: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span> <span class="ruby-operator">||=</span> {}&#x000A;177: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:js</span>] <span class="ruby-operator">||=</span> {}&#x000A;178: <span class="ruby-identifier">cache_key</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">inspect</span>&#x000A;179: &#x000A;180: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">cache?</span> <span class="ruby-operator">||</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:js</span>][<span class="ruby-identifier">cache_key</span>].<span class="ruby-identifier">blank?</span>&#x000A;181: <span class="ruby-comment cmt"># Generate HTML and write to cache</span>&#x000A;182: &#x000A;183: <span class="ruby-identifier">html</span> = []&#x000A;184: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">extract_options!</span>&#x000A;185: &#x000A;186: <span class="ruby-identifier">included_vendors</span> = (<span class="ruby-identifier">args</span> <span class="ruby-operator">&amp;</span> <span class="ruby-constant">AssetHat</span><span class="ruby-operator">::</span><span class="ruby-constant">JS</span><span class="ruby-operator">::</span><span class="ruby-constant">VENDORS</span>)&#x000A;187: <span class="ruby-identifier">included_vendors</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">vendor</span><span class="ruby-operator">|</span>&#x000A;188: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">delete</span> <span class="ruby-identifier">vendor</span>&#x000A;189: <span class="ruby-identifier">src</span> = <span class="ruby-constant">AssetHat</span><span class="ruby-operator">::</span><span class="ruby-constant">JS</span><span class="ruby-operator">::</span><span class="ruby-constant">Vendors</span>.<span class="ruby-identifier">source_for</span>(<span class="ruby-identifier">vendor</span>, <span class="ruby-identifier">options</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-identifier">:version</span>))&#x000A;190: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">include_assets</span>(<span class="ruby-identifier">:js</span>, <span class="ruby-identifier">src</span>, <span class="ruby-identifier">:cache</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>)&#x000A;191: <span class="ruby-keyword kw">end</span>&#x000A;192: &#x000A;193: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">include_assets</span>(<span class="ruby-identifier">:js</span>, <span class="ruby-operator">*</span>(<span class="ruby-identifier">args</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">options</span>]))&#x000A;194: <span class="ruby-identifier">html</span> = <span class="ruby-identifier">html</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n&quot;</span>).<span class="ruby-identifier">strip</span>&#x000A;195: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:js</span>][<span class="ruby-identifier">cache_key</span>] = <span class="ruby-identifier">html</span>&#x000A;196: <span class="ruby-keyword kw">end</span>&#x000A;197: &#x000A;198: <span class="ruby-identifier">html</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:js</span>][<span class="ruby-identifier">cache_key</span>]&#x000A;199: <span class="ruby-identifier">html</span>&#x000A;200: <span class="ruby-keyword kw">end</span></pre>
152
+ <pre id='M000028-source'> <span class="ruby-comment cmt"># File app/helpers/asset_hat_helper.rb, line 189</span>&#x000A;189: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include_js</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)&#x000A;190: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">blank?</span>&#x000A;191: &#x000A;192: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span> <span class="ruby-operator">||=</span> {}&#x000A;193: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:js</span>] <span class="ruby-operator">||=</span> {}&#x000A;194: &#x000A;195: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">extract_options!</span>&#x000A;196: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">symbolize_keys!</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">:ssl</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">ssl?</span>)&#x000A;197: <span class="ruby-identifier">cache_key</span> = (<span class="ruby-identifier">args</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">options</span>]).<span class="ruby-identifier">inspect</span>&#x000A;198: &#x000A;199: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">cache?</span> <span class="ruby-operator">||</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:js</span>][<span class="ruby-identifier">cache_key</span>].<span class="ruby-identifier">blank?</span>&#x000A;200: <span class="ruby-comment cmt"># Generate HTML and write to cache</span>&#x000A;201: &#x000A;202: <span class="ruby-identifier">html</span> = []&#x000A;203: <span class="ruby-identifier">included_vendors</span> = (<span class="ruby-identifier">args</span> <span class="ruby-operator">&amp;</span> <span class="ruby-constant">AssetHat</span><span class="ruby-operator">::</span><span class="ruby-constant">JS</span><span class="ruby-operator">::</span><span class="ruby-constant">VENDORS</span>)&#x000A;204: <span class="ruby-identifier">included_vendors</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">vendor</span><span class="ruby-operator">|</span>&#x000A;205: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">delete</span> <span class="ruby-identifier">vendor</span>&#x000A;206: <span class="ruby-identifier">src</span> = <span class="ruby-constant">AssetHat</span><span class="ruby-operator">::</span><span class="ruby-constant">JS</span><span class="ruby-operator">::</span><span class="ruby-constant">Vendors</span>.<span class="ruby-identifier">source_for</span>(&#x000A;207: <span class="ruby-identifier">vendor</span>, <span class="ruby-identifier">options</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-identifier">:ssl</span>, <span class="ruby-identifier">:version</span>))&#x000A;208: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">include_assets</span>(<span class="ruby-identifier">:js</span>, <span class="ruby-identifier">src</span>, <span class="ruby-identifier">:cache</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>)&#x000A;209: <span class="ruby-keyword kw">end</span>&#x000A;210: &#x000A;211: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">except!</span> <span class="ruby-identifier">:ssl</span>, <span class="ruby-identifier">:version</span>&#x000A;212: &#x000A;213: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">include_assets</span>(<span class="ruby-identifier">:js</span>, <span class="ruby-operator">*</span>(<span class="ruby-identifier">args</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">options</span>]))&#x000A;214: <span class="ruby-identifier">html</span> = <span class="ruby-identifier">html</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n&quot;</span>).<span class="ruby-identifier">strip</span>&#x000A;215: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:js</span>][<span class="ruby-identifier">cache_key</span>] = <span class="ruby-identifier">html</span>&#x000A;216: <span class="ruby-keyword kw">end</span>&#x000A;217: &#x000A;218: <span class="ruby-identifier">html</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span>[<span class="ruby-identifier">:js</span>][<span class="ruby-identifier">cache_key</span>]&#x000A;219: <span class="ruby-identifier">html</span>&#x000A;220: <span class="ruby-keyword kw">end</span></pre>
149
153
  </div>
150
154
  </div>
151
155
  </div>