asset_hat 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>