asset_hat 0.3.1 → 0.4.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 (52) hide show
  1. data/Gemfile +2 -0
  2. data/Gemfile.lock +37 -0
  3. data/HISTORY +10 -0
  4. data/README.rdoc +117 -75
  5. data/Rakefile +4 -4
  6. data/VERSION.yml +2 -2
  7. data/asset_hat.gemspec +69 -7
  8. data/config/assets.yml +46 -24
  9. data/doc/classes/AssetHat.html +183 -118
  10. data/doc/classes/AssetHat/CSS.html +21 -21
  11. data/doc/classes/AssetHat/CSS/Engines.html +10 -10
  12. data/doc/classes/AssetHat/JS.html +13 -13
  13. data/doc/classes/AssetHat/JS/Engines.html +10 -10
  14. data/doc/classes/AssetHat/JS/Vendors.html +85 -22
  15. data/doc/classes/AssetHatHelper.html +94 -19
  16. data/doc/created.rid +1 -1
  17. data/doc/files/HISTORY.html +20 -2
  18. data/doc/files/LICENSE.html +1 -1
  19. data/doc/files/README_rdoc.html +87 -31
  20. data/doc/files/lib/asset_hat/capistrano_rb.html +1 -1
  21. data/doc/files/lib/asset_hat/css_rb.html +1 -1
  22. data/doc/files/lib/asset_hat/initializers/action_view_rb.html +49 -0
  23. data/doc/files/lib/asset_hat/initializers/cache_last_commit_ids_rb.html +49 -0
  24. data/doc/files/lib/asset_hat/js/vendors_rb.html +1 -1
  25. data/doc/files/lib/asset_hat/js_rb.html +1 -1
  26. data/doc/files/lib/asset_hat/railtie_rb.html +61 -0
  27. data/doc/files/lib/asset_hat/tasks/css_rb.html +1 -1
  28. data/doc/files/lib/asset_hat/tasks/js_rb.html +1 -1
  29. data/doc/files/lib/asset_hat/tasks_rb.html +2 -1
  30. data/doc/files/lib/asset_hat/unicorn_rb.html +58 -0
  31. data/doc/files/lib/asset_hat/vcs_rb.html +1 -1
  32. data/doc/files/lib/asset_hat/version_rb.html +1 -1
  33. data/doc/files/{app/helpers → lib}/asset_hat_helper_rb.html +3 -3
  34. data/doc/files/lib/asset_hat_rb.html +9 -1
  35. data/doc/files/lib/tasks/asset_hat_rake.html +54 -0
  36. data/doc/fr_file_index.html +6 -1
  37. data/doc/fr_method_index.html +60 -52
  38. data/lib/asset_hat.rb +104 -59
  39. data/lib/asset_hat/initializers/action_view.rb +1 -0
  40. data/lib/asset_hat/initializers/cache_last_commit_ids.rb +1 -0
  41. data/lib/asset_hat/js/vendors.rb +198 -72
  42. data/lib/asset_hat/railtie.rb +19 -0
  43. data/lib/asset_hat/tasks.rb +5 -2
  44. data/lib/asset_hat/unicorn.rb +9 -0
  45. data/lib/asset_hat/vcs.rb +3 -2
  46. data/{app/helpers → lib}/asset_hat_helper.rb +184 -29
  47. data/{tasks → lib/tasks}/asset_hat.rake +0 -0
  48. data/rails/init.rb +2 -2
  49. data/test/asset_hat_helper_test.rb +731 -148
  50. data/test/asset_hat_test.rb +23 -2
  51. data/test/test_helper.rb +4 -8
  52. metadata +311 -30
data/config/assets.yml CHANGED
@@ -1,34 +1,51 @@
1
- # This belongs in your app's `config` directory. Configure your bundles
2
- # below; no `.css` or `.js` suffixes needed. Example:
1
+ # Here, you can upgrade your layouts and views to AssetHat. For example, find
2
+ # this sort of code in your app:
3
+ #
4
+ # stylesheet_link_tag 'reset', 'application'
5
+ # javascript_include_tag(
6
+ # Rails.env.production? ? '<Google CDN URL>' : 'jquery-1.5.2')
7
+ # javascript_include_tag 'utilities', 'application'
8
+ #
9
+ # Create matching bundles in this file (no `.css` or `.js` suffixes needed;
10
+ # ERb is supported if you need it):
3
11
  #
4
12
  # css:
5
- # engine: cssmin
6
13
  # bundles:
7
14
  # application:
8
15
  # - reset
9
16
  # - application
10
- # - clearfix
11
- # admin:
12
- # - reset
13
- # - admin
14
- # - clearfix
15
17
  # js:
16
- # engine: jsmin
17
18
  # vendors:
18
19
  # jquery:
19
- # version: 1.4
20
+ # version: 1.5.2
20
21
  # bundles:
21
- # plugins:
22
- # - init
23
- # - third-party-plugin.min
24
- # # Here, the suffix `.min` indicates that the code has already
25
- # # been minified, and should not be re-minified.
26
- # common:
22
+ # application:
27
23
  # - utilities
28
24
  # - application
25
+ #
26
+ # Then, simplify your layouts and views to match your bundles:
27
+ #
28
+ # include_css :bundle => 'application'
29
+ # include_js :jquery, :bundle => 'application'
30
+ #
31
+ # This makes it really easy to reuse sets of CSS/JS files across layouts.
32
+ #
33
+ # Lastly, set up your deployment script to run `rake asset_hat:minify`
34
+ # automatically. This creates minified versions of your CSS/JS; your original
35
+ # code is untouched. If you deploy with Capistrano, here's an example recipe:
36
+ # https://github.com/mintdigital/asset_hat/blob/master/lib/asset_hat/capistrano.rb
37
+ #
38
+ # That's it! In development, individual CSS/JS files are loaded separately,
39
+ # and your local copy of jQuery is used. In production, your minified CSS/JS
40
+ # bundles are loaded, and jQuery is loaded from Google's CDN.
41
+ #
42
+ # More info: https://github.com/mintdigital/asset_hat/#readme
29
43
 
30
44
  css:
31
45
  engine: cssmin
46
+ # Available minification engines:
47
+ # http://mintdigital.github.com/asset_hat/doc/classes/AssetHat/CSS/Engines.html
48
+
32
49
  bundles:
33
50
  css-bundle-1:
34
51
  - css-file-1-1
@@ -38,12 +55,21 @@ css:
38
55
  - css-file-2-1
39
56
  - css-file-2-2
40
57
  - css-file-2-3
41
- css-bundle-3:
42
- - css-file-3-1
43
- - css-file-3-2
44
- - css-file-3-3
58
+
45
59
  js:
46
60
  engine: jsmin
61
+ # Available minification engines:
62
+ # http://mintdigital.github.com/asset_hat/doc/classes/AssetHat/JS/Engines.html
63
+
64
+ # Enable if you're using jQuery or other popular JS:
65
+ #
66
+ # vendors:
67
+ # jquery:
68
+ # version: 1.5.2
69
+ #
70
+ # Supported vendors:
71
+ # http://mintdigital.github.com/asset_hat/doc/classes/AssetHat/JS/Vendors.html
72
+
47
73
  bundles:
48
74
  js-bundle-1:
49
75
  - js-file-1-1
@@ -53,7 +79,3 @@ js:
53
79
  - js-file-2-1
54
80
  - js-file-2-2
55
81
  - js-file-2-3
56
- js-bundle-3:
57
- - js-file-3-1
58
- - js-file-3-2
59
- - js-file-3-3
@@ -33,11 +33,14 @@
33
33
  <li>
34
34
  <a href="../files/lib/asset_hat/css_rb.html">lib/asset_hat/css.rb</a>
35
35
  </li>
36
+ <li class='other'>
37
+ <a href="../files/lib/asset_hat/js_rb.html">lib/asset_hat/js.rb</a>
38
+ </li>
36
39
  <li class='other'>
37
40
  <a href="../files/lib/asset_hat/js/vendors_rb.html">lib/asset_hat/js/vendors.rb</a>
38
41
  </li>
39
42
  <li class='other'>
40
- <a href="../files/lib/asset_hat/js_rb.html">lib/asset_hat/js.rb</a>
43
+ <a href="../files/lib/asset_hat/railtie_rb.html">lib/asset_hat/railtie.rb</a>
41
44
  </li>
42
45
  <li class='other'>
43
46
  <a href="../files/lib/asset_hat/vcs_rb.html">lib/asset_hat/vcs.rb</a>
@@ -57,67 +60,32 @@
57
60
  <div id='text'>
58
61
  <div id='description'>
59
62
  <p>
60
- Your assets are covered.
61
- </p>
62
- <p>
63
- With Rails&#8217; default asset caching, <a
64
- href="AssetHat/CSS.html">CSS</a> and <a href="AssetHat/JS.html">JS</a> are
65
- concatenated (not even minified) at runtime when that bundle is first
66
- requested. Not good enough. <a href="AssetHat.html">AssetHat</a> can
67
- automatically:
68
- </p>
69
- <ul>
70
- <li>Easily <b>minify</b> and <b>bundle</b> <a href="AssetHat/CSS.html">CSS</a>
71
- and <a href="AssetHat/JS.html">JS</a> on deploy to reduce file sizes and
72
- HTTP requests.
73
-
74
- </li>
75
- <li>Load popular <strong>third-party JS</strong> (like jQuery and Prototype)
76
- from <a href="http://code.google.com/apis/ajaxlibs/"><strong>Google's
77
- CDN</strong></a> when in production, or from localhost in development.
78
-
79
- </li>
80
- <li>Force image URLs in your <a href="AssetHat/CSS.html">CSS</a> to use
81
- <strong>CDN subdomains</strong>, not just the current host.
82
-
83
- </li>
84
- <li>Add an image&#8217;s last <a href="http://git-scm.com/">Git</a> commit ID
85
- to its <a href="AssetHat/CSS.html">CSS</a> URLs to <strong>bust browser
86
- caches</strong> (e.g., <tt>/images/foo.png?ab12cd3</tt>).
87
-
88
- </li>
89
- </ul>
90
- <p>
91
- After setup, you can use these in your layouts and views:
92
- </p>
93
- <pre>&lt;%= include_css :bundle =&gt; 'application' %&gt;&#x000A; # =&gt; &lt;link href=&quot;/stylesheets/bundles/application.min.css&quot;&#x000A; # media=&quot;screen,projection&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;&#x000A;&#x000A;&lt;%= include_js :bundles =&gt; ['plugins', 'common'] %&gt;&#x000A; # =&gt; &lt;script src=&quot;/javascripts/bundles/plugins.min.js&quot;&#x000A; # type=&quot;text/javascript&quot;&gt;&lt;/script&gt;&#x000A; # &lt;script src=&quot;/javascripts/bundles/common.min.js&quot;&#x000A; # type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
94
- <p>
95
- And this in your deploy script:
96
- </p>
97
- <pre>rake asset_hat:minify</pre>
98
- <p>
99
- See <a href="../files/README_rdoc.html">README.rdoc</a> for more.
63
+ Your assets are covered. See <a
64
+ href="../files/README_rdoc.html">README.rdoc</a> for more.
100
65
  </p>
101
66
  </div>
102
67
  <div id='method-list'>
103
68
  <h2>Methods</h2>
104
69
  <h3>public class</h3>
105
70
  <ol>
106
- <li><a href="#M000008">asset_exists?</a></li>
71
+ <li><a href="#M000010">asset_exists?</a></li>
107
72
  <li><a href="#M000006">assets_dir</a></li>
108
- <li><a href="#M000011">bundle_filenames</a></li>
109
- <li><a href="#M000012">bundle_filepaths</a></li>
110
- <li><a href="#M000007">bundles_dir</a></li>
111
- <li><a href="#M000009">cache?</a></li>
112
- <li><a href="#M000003">cache_last_commit_ids</a></li>
113
- <li><a href="#M000015">clear_html_cache</a></li>
114
- <li><a href="#M000013">compute_asset_host</a></li>
73
+ <li><a href="#M000007">assets_path</a></li>
74
+ <li><a href="#M000014">bundle_filenames</a></li>
75
+ <li><a href="#M000015">bundle_filepaths</a></li>
76
+ <li><a href="#M000008">bundles_dir</a></li>
77
+ <li><a href="#M000009">bundles_path</a></li>
78
+ <li><a href="#M000011">cache?</a></li>
79
+ <li><a href="#M000004">cache_last_commit_ids</a></li>
80
+ <li><a href="#M000018">clear_html_cache</a></li>
81
+ <li><a href="#M000016">compute_asset_host</a></li>
115
82
  <li><a href="#M000005">config</a></li>
116
- <li><a href="#M000002">last_bundle_commit_id</a></li>
117
- <li><a href="#M000001">last_commit_id</a></li>
118
- <li><a href="#M000010">min_filepath</a></li>
119
- <li><a href="#M000014">ssl_asset_host_differs?</a></li>
120
- <li><a href="#M000004">version</a></li>
83
+ <li><a href="#M000012">consider_all_requests_local?</a></li>
84
+ <li><a href="#M000003">last_bundle_commit_id</a></li>
85
+ <li><a href="#M000002">last_commit_id</a></li>
86
+ <li><a href="#M000013">min_filepath</a></li>
87
+ <li><a href="#M000017">ssl_asset_host_differs?</a></li>
88
+ <li><a href="#M000001">version</a></li>
121
89
  </ol>
122
90
  </div>
123
91
  <div id='section'>
@@ -153,13 +121,33 @@
153
121
  <tr class='top-aligned-row context-row'>
154
122
  <td class='context-item-name'>ASSETS_DIR</td>
155
123
  <td>=</td>
156
- <td class='context-item-value'>defined?(Rails.public_path) ? Rails.public_path : 'public'</td>
124
+ <td class='context-item-value'>defined?(Rails.public_path) &amp;&amp; Rails.public_path.present? ? Rails.public_path : 'public'</td>
157
125
  <td>&nbsp;</td>
158
126
  <td class='context-item-desc'>
159
127
 
160
128
  Base directory in which all assets are kept, e.g., &#8216;public/&#8217;.
161
129
  </td>
162
130
  </tr>
131
+ <tr class='top-aligned-row context-row'>
132
+ <td class='context-item-name'>STYLESHEETS_PATH</td>
133
+ <td>=</td>
134
+ <td class='context-item-value'>'/stylesheets'</td>
135
+ <td>&nbsp;</td>
136
+ <td class='context-item-desc'>
137
+
138
+ Root URL path for all stylesheets. For public-facing use.
139
+ </td>
140
+ </tr>
141
+ <tr class='top-aligned-row context-row'>
142
+ <td class='context-item-name'>JAVASCRIPTS_PATH</td>
143
+ <td>=</td>
144
+ <td class='context-item-value'>'/javascripts'</td>
145
+ <td>&nbsp;</td>
146
+ <td class='context-item-desc'>
147
+
148
+ Root URL path for all JavaScripts. For public-facing use.
149
+ </td>
150
+ </tr>
163
151
  <tr class='top-aligned-row context-row'>
164
152
  <td class='context-item-name'>STYLESHEETS_DIR</td>
165
153
  <td>=</td>
@@ -168,7 +156,7 @@
168
156
  <td class='context-item-desc'>
169
157
 
170
158
  Directory in which all stylesheets are kept, e.g.,
171
- &#8216;public/stylesheets/&#8217;.
159
+ &#8216;public/stylesheets&#8217;. For internal filesystem use.
172
160
  </td>
173
161
  </tr>
174
162
  <tr class='top-aligned-row context-row'>
@@ -179,7 +167,7 @@
179
167
  <td class='context-item-desc'>
180
168
 
181
169
  Directory in which all JavaScripts are kept, e.g.,
182
- &#8216;public/javascripts/&#8217;.
170
+ &#8216;public/javascripts&#8217;. For internal filesystem use.
183
171
  </td>
184
172
  </tr>
185
173
  <tr class='top-aligned-row context-row'>
@@ -207,8 +195,8 @@
207
195
  </div>
208
196
  <div id='methods'>
209
197
  <h2>Public class methods</h2>
210
- <div class='method public-class' id='method-M000008'>
211
- <a name='M000008'></a>
198
+ <div class='method public-class' id='method-M000010'>
199
+ <a name='M000010'></a>
212
200
  <div class='synopsis'>
213
201
  <span class='name'>asset_exists?</span>
214
202
  <span class='arguments'>(filename, type)</span>
@@ -223,10 +211,10 @@
223
211
  </p>
224
212
  </div>
225
213
  <div class='source'>
226
- <a class='source-toggle' href='#' onclick="toggleCode('M000008-source'); return false">
214
+ <a class='source-toggle' href='#' onclick="toggleCode('M000010-source'); return false">
227
215
  [show source]
228
216
  </a>
229
- <pre id='M000008-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 127</span>&#x000A;127: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">asset_exists?</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">type</span>)&#x000A;128: <span class="ruby-comment cmt"># Process arguments</span>&#x000A;129: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>&#x000A;130: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>)&#x000A;131: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown type \&quot;#{type}\&quot;; should be one of: #{TYPES.join(', ')}.&quot;</span>&#x000A;132: <span class="ruby-keyword kw">return</span>&#x000A;133: <span class="ruby-keyword kw">end</span>&#x000A;134: &#x000A;135: <span class="ruby-comment cmt"># Default to `{:css =&gt; {}, :js =&gt; {}}`</span>&#x000A;136: <span class="ruby-ivar">@asset_exists</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">inject</span>({}) { <span class="ruby-operator">|</span><span class="ruby-identifier">hsh</span>, <span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hsh</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">t</span> =<span class="ruby-operator">&gt;</span> {}) }&#x000A;137: &#x000A;138: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@asset_exists</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">filename</span>].<span class="ruby-identifier">nil?</span>&#x000A;139: <span class="ruby-ivar">@asset_exists</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">filename</span>] =&#x000A;140: <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">assets_dir</span>(<span class="ruby-identifier">type</span>), <span class="ruby-identifier">filename</span>))&#x000A;141: <span class="ruby-keyword kw">end</span>&#x000A;142: <span class="ruby-ivar">@asset_exists</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">filename</span>]&#x000A;143: <span class="ruby-keyword kw">end</span></pre>
217
+ <pre id='M000010-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 154</span>&#x000A;154: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">asset_exists?</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-identifier">type</span>)&#x000A;155: <span class="ruby-comment cmt"># Process arguments</span>&#x000A;156: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>&#x000A;157: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>)&#x000A;158: <span class="ruby-identifier">raise</span> <span class="ruby-node">%{Unknown type &quot;#{type}&quot;; should be one of: #{TYPES.join(', ')}.}</span>&#x000A;159: <span class="ruby-keyword kw">return</span>&#x000A;160: <span class="ruby-keyword kw">end</span>&#x000A;161: &#x000A;162: <span class="ruby-comment cmt"># Default to `{:css =&gt; {}, :js =&gt; {}}`</span>&#x000A;163: <span class="ruby-ivar">@asset_exists</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">inject</span>({}) { <span class="ruby-operator">|</span><span class="ruby-identifier">hsh</span>, <span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hsh</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">t</span> =<span class="ruby-operator">&gt;</span> {}) }&#x000A;164: &#x000A;165: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@asset_exists</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">filename</span>].<span class="ruby-identifier">nil?</span>&#x000A;166: <span class="ruby-ivar">@asset_exists</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">filename</span>] =&#x000A;167: <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">assets_dir</span>(<span class="ruby-identifier">type</span>), <span class="ruby-identifier">filename</span>))&#x000A;168: <span class="ruby-keyword kw">end</span>&#x000A;169: <span class="ruby-ivar">@asset_exists</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">filename</span>]&#x000A;170: <span class="ruby-keyword kw">end</span></pre>
230
218
  </div>
231
219
  </div>
232
220
  <div class='method public-class' id='method-M000006'>
@@ -239,7 +227,7 @@
239
227
  <p>
240
228
  Returns the relative path to the directory where the original <a
241
229
  href="AssetHat/CSS.html">CSS</a> or <a href="AssetHat/JS.html">JS</a> files
242
- are stored.
230
+ are stored. For internal filesystem use.
243
231
  </p>
244
232
  <p>
245
233
  <tt>type</tt> argument: <tt>:css</tt> or <tt>:js</tt>
@@ -249,11 +237,34 @@
249
237
  <a class='source-toggle' href='#' onclick="toggleCode('M000006-source'); return false">
250
238
  [show source]
251
239
  </a>
252
- <pre id='M000006-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 76</span>&#x000A;76: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">assets_dir</span>(<span class="ruby-identifier">type</span>)&#x000A;77: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>&#x000A;78: &#x000A;79: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>)&#x000A;80: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown type \&quot;#{type}\&quot;; should be one of: #{TYPES.join(', ')}.&quot;</span>&#x000A;81: <span class="ruby-keyword kw">return</span>&#x000A;82: <span class="ruby-keyword kw">end</span>&#x000A;83: &#x000A;84: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>&#x000A;85: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:css</span> ; <span class="ruby-constant">STYLESHEETS_DIR</span>&#x000A;86: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:js</span> ; <span class="ruby-constant">JAVASCRIPTS_DIR</span>&#x000A;87: <span class="ruby-keyword kw">else</span> <span class="ruby-keyword kw">nil</span>&#x000A;88: <span class="ruby-keyword kw">end</span>&#x000A;89: <span class="ruby-keyword kw">end</span></pre>
240
+ <pre id='M000006-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 63</span>&#x000A;63: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">assets_dir</span>(<span class="ruby-identifier">type</span>)&#x000A;64: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>&#x000A;65: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:css</span> ; <span class="ruby-constant">STYLESHEETS_DIR</span>&#x000A;66: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:js</span> ; <span class="ruby-constant">JAVASCRIPTS_DIR</span>&#x000A;67: <span class="ruby-keyword kw">else</span>&#x000A;68: <span class="ruby-identifier">raise</span> <span class="ruby-node">%{Unknown type &quot;#{type}&quot;; should be one of: #{TYPES.join(', ')}.}</span>&#x000A;69: <span class="ruby-keyword kw">nil</span>&#x000A;70: <span class="ruby-keyword kw">end</span>&#x000A;71: <span class="ruby-keyword kw">end</span></pre>
253
241
  </div>
254
242
  </div>
255
- <div class='method public-class' id='method-M000011'>
256
- <a name='M000011'></a>
243
+ <div class='method public-class' id='method-M000007'>
244
+ <a name='M000007'></a>
245
+ <div class='synopsis'>
246
+ <span class='name'>assets_path</span>
247
+ <span class='arguments'>(type)</span>
248
+ </div>
249
+ <div class='description'>
250
+ <p>
251
+ Returns the root URL path where the original <a
252
+ href="AssetHat/CSS.html">CSS</a> or <a href="AssetHat/JS.html">JS</a> files
253
+ are stored. For external URL-building use.
254
+ </p>
255
+ <p>
256
+ <tt>type</tt> argument: <tt>:css</tt> or <tt>:js</tt>
257
+ </p>
258
+ </div>
259
+ <div class='source'>
260
+ <a class='source-toggle' href='#' onclick="toggleCode('M000007-source'); return false">
261
+ [show source]
262
+ </a>
263
+ <pre id='M000007-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 77</span>&#x000A;77: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">assets_path</span>(<span class="ruby-identifier">type</span>)&#x000A;78: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>&#x000A;79: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:css</span> ; <span class="ruby-constant">STYLESHEETS_PATH</span>&#x000A;80: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:js</span> ; <span class="ruby-constant">JAVASCRIPTS_PATH</span>&#x000A;81: <span class="ruby-keyword kw">else</span>&#x000A;82: <span class="ruby-identifier">raise</span> <span class="ruby-node">%{Unknown type &quot;#{type}&quot;; should be one of: #{TYPES.join(', ')}.}</span>&#x000A;83: <span class="ruby-keyword kw">nil</span>&#x000A;84: <span class="ruby-keyword kw">end</span>&#x000A;85: <span class="ruby-keyword kw">end</span></pre>
264
+ </div>
265
+ </div>
266
+ <div class='method public-class' id='method-M000014'>
267
+ <a name='M000014'></a>
257
268
  <div class='synopsis'>
258
269
  <span class='name'>bundle_filenames</span>
259
270
  <span class='arguments'>(bundle, type)</span>
@@ -262,17 +273,17 @@
262
273
  <p>
263
274
  Returns the extension-less names of files in the given bundle:
264
275
  </p>
265
- <pre>AssetHat.bundle_filenames('application', :css)&#x000A; # =&gt; ['reset', 'application', 'clearfix']&#x000A;AssetHat.bundle_filenames('non-existent-file', :css)&#x000A; # =&gt; nil</pre>
276
+ <pre>AssetHat.bundle_filenames('application', :css)&#x000A; # =&gt; ['reset', 'application']&#x000A;AssetHat.bundle_filenames('non-existent-file', :css)&#x000A; # =&gt; nil</pre>
266
277
  </div>
267
278
  <div class='source'>
268
- <a class='source-toggle' href='#' onclick="toggleCode('M000011-source'); return false">
279
+ <a class='source-toggle' href='#' onclick="toggleCode('M000014-source'); return false">
269
280
  [show source]
270
281
  </a>
271
- <pre id='M000011-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 169</span>&#x000A;169: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bundle_filenames</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>)&#x000A;170: <span class="ruby-comment cmt"># Process arguments</span>&#x000A;171: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>)&#x000A;172: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown type \&quot;#{type}\&quot;; should be one of: #{TYPES.join(', ')}.&quot;</span>&#x000A;173: <span class="ruby-keyword kw">return</span>&#x000A;174: <span class="ruby-keyword kw">end</span>&#x000A;175: &#x000A;176: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">config</span>[<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_s</span>][<span class="ruby-value str">'bundles'</span>][<span class="ruby-identifier">bundle</span>.<span class="ruby-identifier">to_s</span>] <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>&#x000A;177: <span class="ruby-keyword kw">end</span></pre>
282
+ <pre id='M000014-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 210</span>&#x000A;210: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bundle_filenames</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>)&#x000A;211: <span class="ruby-comment cmt"># Process arguments</span>&#x000A;212: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>)&#x000A;213: <span class="ruby-identifier">raise</span> <span class="ruby-node">%{Unknown type &quot;#{type}&quot;; should be one of: #{TYPES.join(', ')}.}</span>&#x000A;214: <span class="ruby-keyword kw">return</span>&#x000A;215: <span class="ruby-keyword kw">end</span>&#x000A;216: &#x000A;217: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">config</span>[<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_s</span>][<span class="ruby-value str">'bundles'</span>][<span class="ruby-identifier">bundle</span>.<span class="ruby-identifier">to_s</span>] <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>&#x000A;218: <span class="ruby-keyword kw">end</span></pre>
272
283
  </div>
273
284
  </div>
274
- <div class='method public-class' id='method-M000012'>
275
- <a name='M000012'></a>
285
+ <div class='method public-class' id='method-M000015'>
286
+ <a name='M000015'></a>
276
287
  <div class='synopsis'>
277
288
  <span class='name'>bundle_filepaths</span>
278
289
  <span class='arguments'>(bundle, type)</span>
@@ -281,17 +292,17 @@
281
292
  <p>
282
293
  Returns the full paths of files in the given bundle:
283
294
  </p>
284
- <pre>AssetHat.bundle_filenames('application', :css)&#x000A; # =&gt; ['/path/to/app/public/stylesheets/reset.css',&#x000A; '/path/to/app/public/stylesheets/application.css',&#x000A; '/path/to/app/public/stylesheets/clearfix.css']&#x000A;AssetHat.bundle_filenames('non-existent-file', :css)&#x000A; # =&gt; nil</pre>
295
+ <pre>AssetHat.bundle_filenames('application', :css)&#x000A; # =&gt; ['/path/to/app/public/stylesheets/reset.css',&#x000A; '/path/to/app/public/stylesheets/application.css']&#x000A;AssetHat.bundle_filenames('non-existent-file', :css)&#x000A; # =&gt; nil</pre>
285
296
  </div>
286
297
  <div class='source'>
287
- <a class='source-toggle' href='#' onclick="toggleCode('M000012-source'); return false">
298
+ <a class='source-toggle' href='#' onclick="toggleCode('M000015-source'); return false">
288
299
  [show source]
289
300
  </a>
290
- <pre id='M000012-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 187</span>&#x000A;187: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bundle_filepaths</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>)&#x000A;188: <span class="ruby-comment cmt"># Process arguments</span>&#x000A;189: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>)&#x000A;190: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown type \&quot;#{type}\&quot;; should be one of: #{TYPES.join(', ')}.&quot;</span>&#x000A;191: <span class="ruby-keyword kw">return</span>&#x000A;192: <span class="ruby-keyword kw">end</span>&#x000A;193: &#x000A;194: <span class="ruby-identifier">dir</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">assets_dir</span>(<span class="ruby-identifier">type</span>)&#x000A;195: <span class="ruby-identifier">filenames</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bundle_filenames</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>)&#x000A;196: <span class="ruby-identifier">filepaths</span> = <span class="ruby-identifier">filenames</span>.<span class="ruby-identifier">present?</span> <span class="ruby-value">?&#x000A;197: </span> <span class="ruby-identifier">filenames</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">fn</span><span class="ruby-operator">|</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">dir</span>, <span class="ruby-node">&quot;#{fn}.#{type}&quot;</span>) } <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>&#x000A;198: <span class="ruby-keyword kw">end</span></pre>
301
+ <pre id='M000015-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 227</span>&#x000A;227: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bundle_filepaths</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>)&#x000A;228: <span class="ruby-comment cmt"># Process arguments</span>&#x000A;229: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>)&#x000A;230: <span class="ruby-identifier">raise</span> <span class="ruby-node">%{Unknown type &quot;#{type}&quot;; should be one of: #{TYPES.join(', ')}.}</span>&#x000A;231: <span class="ruby-keyword kw">return</span>&#x000A;232: <span class="ruby-keyword kw">end</span>&#x000A;233: &#x000A;234: <span class="ruby-identifier">dir</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">assets_dir</span>(<span class="ruby-identifier">type</span>)&#x000A;235: <span class="ruby-identifier">filenames</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bundle_filenames</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>)&#x000A;236: <span class="ruby-identifier">filepaths</span> = <span class="ruby-identifier">filenames</span>.<span class="ruby-identifier">present?</span> <span class="ruby-value">?&#x000A;237: </span> <span class="ruby-identifier">filenames</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">fn</span><span class="ruby-operator">|</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">dir</span>, <span class="ruby-node">&quot;#{fn}.#{type}&quot;</span>) } <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>&#x000A;238: <span class="ruby-keyword kw">end</span></pre>
291
302
  </div>
292
303
  </div>
293
- <div class='method public-class' id='method-M000007'>
294
- <a name='M000007'></a>
304
+ <div class='method public-class' id='method-M000008'>
305
+ <a name='M000008'></a>
295
306
  <div class='synopsis'>
296
307
  <span class='name'>bundles_dir</span>
297
308
  <span class='arguments'>(*args)</span>
@@ -300,7 +311,7 @@
300
311
  <p>
301
312
  Returns the relative path to the directory where <a
302
313
  href="AssetHat/CSS.html">CSS</a> or <a href="AssetHat/JS.html">JS</a>
303
- bundles are stored.
314
+ bundles are stored. For internal filesystem use.
304
315
  </p>
305
316
  <p>
306
317
  Usage:
@@ -317,14 +328,47 @@
317
328
  </dl>
318
329
  </div>
319
330
  <div class='source'>
320
- <a class='source-toggle' href='#' onclick="toggleCode('M000007-source'); return false">
331
+ <a class='source-toggle' href='#' onclick="toggleCode('M000008-source'); return false">
321
332
  [show source]
322
333
  </a>
323
- <pre id='M000007-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 109</span>&#x000A;109: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bundles_dir</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)&#x000A;110: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">extract_options!</span>&#x000A;111: <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-keyword kw">false</span>)&#x000A;112: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>&#x000A;113: &#x000A;114: <span class="ruby-identifier">dir</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">present?</span> <span class="ruby-value">? </span><span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">assets_dir</span>(<span class="ruby-identifier">type</span>), <span class="ruby-value str">'bundles'</span>) <span class="ruby-operator">:</span> <span class="ruby-value str">'bundles'</span>&#x000A;115: <span class="ruby-identifier">dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">dir</span>, <span class="ruby-value str">'ssl'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:ssl</span>]&#x000A;116: <span class="ruby-identifier">dir</span>&#x000A;117: <span class="ruby-keyword kw">end</span></pre>
334
+ <pre id='M000008-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 105</span>&#x000A;105: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bundles_dir</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)&#x000A;106: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">extract_options!</span>&#x000A;107: <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-keyword kw">false</span>)&#x000A;108: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>&#x000A;109: &#x000A;110: <span class="ruby-identifier">dir</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">present?</span> <span class="ruby-value">? </span><span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">assets_dir</span>(<span class="ruby-identifier">type</span>), <span class="ruby-value str">'bundles'</span>) <span class="ruby-operator">:</span> <span class="ruby-value str">'bundles'</span>&#x000A;111: <span class="ruby-identifier">dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">dir</span>, <span class="ruby-value str">'ssl'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:ssl</span>]&#x000A;112: <span class="ruby-identifier">dir</span>&#x000A;113: <span class="ruby-keyword kw">end</span></pre>
324
335
  </div>
325
336
  </div>
326
337
  <div class='method public-class' id='method-M000009'>
327
338
  <a name='M000009'></a>
339
+ <div class='synopsis'>
340
+ <span class='name'>bundles_path</span>
341
+ <span class='arguments'>(type, options={})</span>
342
+ </div>
343
+ <div class='description'>
344
+ <p>
345
+ Returns the root URL path where <a href="AssetHat/CSS.html">CSS</a> or <a
346
+ href="AssetHat/JS.html">JS</a> bundles are stored. For external
347
+ URL-building use.
348
+ </p>
349
+ <p>
350
+ Usage:
351
+ </p>
352
+ <pre>AssetHat.bundles_path(:css)&#x000A; # =&gt; 'public/stylesheets/bundles'&#x000A;AssetHat.bundles_path(:js, :ssl =&gt; true)&#x000A; # =&gt; 'public/javascripts/bundles/ssl</pre>
353
+ <p>
354
+ Options:
355
+ </p>
356
+ <dl>
357
+ <dt>ssl</dt><dd>Set this to <tt>true</tt> if the stylesheet references images via SSL.
358
+ Defaults to <tt>false</tt>.
359
+
360
+ </dd>
361
+ </dl>
362
+ </div>
363
+ <div class='source'>
364
+ <a class='source-toggle' href='#' onclick="toggleCode('M000009-source'); return false">
365
+ [show source]
366
+ </a>
367
+ <pre id='M000009-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 129</span>&#x000A;129: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bundles_path</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">options</span>={})&#x000A;130: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>&#x000A;131: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>)&#x000A;132: <span class="ruby-identifier">raise</span> <span class="ruby-node">%{Unknown type &quot;#{type}&quot;; should be one of: #{TYPES.join(', ')}.}</span>&#x000A;133: <span class="ruby-keyword kw">return</span>&#x000A;134: <span class="ruby-keyword kw">end</span>&#x000A;135: &#x000A;136: <span class="ruby-identifier">path</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>&#x000A;137: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:css</span> ; <span class="ruby-constant">STYLESHEETS_PATH</span>&#x000A;138: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:js</span> ; <span class="ruby-constant">JAVASCRIPTS_PATH</span>&#x000A;139: <span class="ruby-keyword kw">else</span> <span class="ruby-keyword kw">nil</span>&#x000A;140: <span class="ruby-keyword kw">end</span>&#x000A;141: <span class="ruby-identifier">path</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'/bundles'</span>&#x000A;142: <span class="ruby-identifier">path</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'/ssl'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:ssl</span>]&#x000A;143: <span class="ruby-identifier">path</span>&#x000A;144: <span class="ruby-keyword kw">end</span></pre>
368
+ </div>
369
+ </div>
370
+ <div class='method public-class' id='method-M000011'>
371
+ <a name='M000011'></a>
328
372
  <div class='synopsis'>
329
373
  <span class='name'>cache?</span>
330
374
  <span class='arguments'>()</span>
@@ -334,19 +378,19 @@
334
378
  Returns <tt>true</tt> if bundles should be included as single minified
335
379
  files (e.g., in production), or <tt>false</tt> if bundles should be
336
380
  included as separate, unminified files (e.g., in development). To modify
337
- this value, set <tt>config.action_controller.perform_caching = true</tt> in
338
- your environment.
381
+ this value, set <tt>config.action_controller.perform_caching</tt> (boolean)
382
+ in your environment.
339
383
  </p>
340
384
  </div>
341
385
  <div class='source'>
342
- <a class='source-toggle' href='#' onclick="toggleCode('M000009-source'); return false">
386
+ <a class='source-toggle' href='#' onclick="toggleCode('M000011-source'); return false">
343
387
  [show source]
344
388
  </a>
345
- <pre id='M000009-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 150</span>&#x000A;150: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">cache?</span> ; <span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">perform_caching</span> ; <span class="ruby-keyword kw">end</span></pre>
389
+ <pre id='M000011-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 178</span>&#x000A;178: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">cache?</span> ; <span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">perform_caching</span> ; <span class="ruby-keyword kw">end</span></pre>
346
390
  </div>
347
391
  </div>
348
- <div class='method public-class' id='method-M000003'>
349
- <a name='M000003'></a>
392
+ <div class='method public-class' id='method-M000004'>
393
+ <a name='M000004'></a>
350
394
  <div class='synopsis'>
351
395
  <span class='name'>cache_last_commit_ids</span>
352
396
  <span class='arguments'>()</span>
@@ -358,27 +402,27 @@
358
402
  </p>
359
403
  </div>
360
404
  <div class='source'>
361
- <a class='source-toggle' href='#' onclick="toggleCode('M000003-source'); return false">
405
+ <a class='source-toggle' href='#' onclick="toggleCode('M000004-source'); return false">
362
406
  [show source]
363
407
  </a>
364
- <pre id='M000003-source'> <span class="ruby-comment cmt"># File lib/asset_hat/vcs.rb, line 74</span>&#x000A;74: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">cache_last_commit_ids</span>&#x000A;75: <span class="ruby-constant">AssetHat</span><span class="ruby-operator">::</span><span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type</span><span class="ruby-operator">|</span>&#x000A;76: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">config</span>[<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_s</span>].<span class="ruby-identifier">blank?</span> <span class="ruby-operator">||</span>&#x000A;77: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">config</span>[<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_s</span>][<span class="ruby-value str">'bundles'</span>].<span class="ruby-identifier">blank?</span>&#x000A;78: &#x000A;79: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">config</span>[<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_s</span>][<span class="ruby-value str">'bundles'</span>].<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bundle</span><span class="ruby-operator">|</span>&#x000A;80: <span class="ruby-comment cmt"># Memoize commit ID for this bundle</span>&#x000A;81: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">last_bundle_commit_id</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">cache?</span>&#x000A;82: &#x000A;83: <span class="ruby-comment cmt"># Memoize commit IDs for each file in this bundle</span>&#x000A;84: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">bundle_filepaths</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">filepath</span><span class="ruby-operator">|</span>&#x000A;85: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">last_commit_id</span>(<span class="ruby-identifier">filepath</span>)&#x000A;86: <span class="ruby-keyword kw">end</span>&#x000A;87: <span class="ruby-keyword kw">end</span>&#x000A;88: <span class="ruby-keyword kw">end</span>&#x000A;89: <span class="ruby-keyword kw">end</span></pre>
408
+ <pre id='M000004-source'> <span class="ruby-comment cmt"># File lib/asset_hat/vcs.rb, line 75</span>&#x000A;75: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">cache_last_commit_ids</span>&#x000A;76: <span class="ruby-constant">AssetHat</span><span class="ruby-operator">::</span><span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type</span><span class="ruby-operator">|</span>&#x000A;77: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">config</span>[<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_s</span>].<span class="ruby-identifier">blank?</span> <span class="ruby-operator">||</span>&#x000A;78: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">config</span>[<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_s</span>][<span class="ruby-value str">'bundles'</span>].<span class="ruby-identifier">blank?</span>&#x000A;79: &#x000A;80: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">config</span>[<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_s</span>][<span class="ruby-value str">'bundles'</span>].<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bundle</span><span class="ruby-operator">|</span>&#x000A;81: <span class="ruby-comment cmt"># Memoize commit ID for this bundle</span>&#x000A;82: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">last_bundle_commit_id</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">cache?</span>&#x000A;83: &#x000A;84: <span class="ruby-comment cmt"># Memoize commit IDs for each file in this bundle</span>&#x000A;85: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">bundle_filepaths</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">filepath</span><span class="ruby-operator">|</span>&#x000A;86: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">last_commit_id</span>(<span class="ruby-identifier">filepath</span>)&#x000A;87: <span class="ruby-keyword kw">end</span>&#x000A;88: <span class="ruby-keyword kw">end</span>&#x000A;89: <span class="ruby-keyword kw">end</span>&#x000A;90: <span class="ruby-keyword kw">end</span></pre>
365
409
  </div>
366
410
  </div>
367
- <div class='method public-class' id='method-M000015'>
368
- <a name='M000015'></a>
411
+ <div class='method public-class' id='method-M000018'>
412
+ <a name='M000018'></a>
369
413
  <div class='synopsis'>
370
414
  <span class='name'>clear_html_cache</span>
371
415
  <span class='arguments'>()</span>
372
416
  </div>
373
417
  <div class='source'>
374
- <a class='source-toggle' href='#' onclick="toggleCode('M000015-source'); return false">
418
+ <a class='source-toggle' href='#' onclick="toggleCode('M000018-source'); return false">
375
419
  [show source]
376
420
  </a>
377
- <pre id='M000015-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 249</span>&#x000A;249: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clear_html_cache</span>&#x000A;250: <span class="ruby-identifier">html_cache</span> = {}&#x000A;251: <span class="ruby-keyword kw">end</span></pre>
421
+ <pre id='M000018-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 294</span>&#x000A;294: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clear_html_cache</span>&#x000A;295: <span class="ruby-identifier">html_cache</span> = {}&#x000A;296: <span class="ruby-keyword kw">end</span></pre>
378
422
  </div>
379
423
  </div>
380
- <div class='method public-class' id='method-M000013'>
381
- <a name='M000013'></a>
424
+ <div class='method public-class' id='method-M000016'>
425
+ <a name='M000016'></a>
382
426
  <div class='synopsis'>
383
427
  <span class='name'>compute_asset_host</span>
384
428
  <span class='arguments'>(asset_host, source, options={})</span>
@@ -387,7 +431,7 @@
387
431
  <p>
388
432
  Reads <tt>ActionController::Base.asset_host</tt>, which can be a String or
389
433
  Proc, and returns a String. Should behave just like Rails 2.3.x&#8217;s
390
- private `<a href="AssetHat.html#M000013">compute_asset_host</a>` method,
434
+ private `<a href="AssetHat.html#M000016">compute_asset_host</a>` method,
391
435
  but with a simulated request.
392
436
  </p>
393
437
  <p>
@@ -410,10 +454,10 @@
410
454
  </dl>
411
455
  </div>
412
456
  <div class='source'>
413
- <a class='source-toggle' href='#' onclick="toggleCode('M000013-source'); return false">
457
+ <a class='source-toggle' href='#' onclick="toggleCode('M000016-source'); return false">
414
458
  [show source]
415
459
  </a>
416
- <pre id='M000013-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 223</span>&#x000A;223: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">compute_asset_host</span>(<span class="ruby-identifier">asset_host</span>, <span class="ruby-identifier">source</span>, <span class="ruby-identifier">options</span>={})&#x000A;224: <span class="ruby-identifier">host</span> = <span class="ruby-identifier">asset_host</span>&#x000A;225: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">host</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Proc</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">host</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:call</span>)&#x000A;226: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">host</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Proc</span>) <span class="ruby-operator">?</span>&#x000A;227: <span class="ruby-identifier">host</span>.<span class="ruby-identifier">arity</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">host</span>.<span class="ruby-identifier">method</span>(<span class="ruby-identifier">:call</span>).<span class="ruby-identifier">arity</span>&#x000A;228: <span class="ruby-keyword kw">when</span> <span class="ruby-value">2</span>&#x000A;229: <span class="ruby-identifier">request</span> = <span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">Request</span>.<span class="ruby-identifier">new</span>(&#x000A;230: <span class="ruby-value str">'HTTPS'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:ssl</span>] <span class="ruby-operator">?</span> <span class="ruby-value str">'on'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'off'</span>)&#x000A;231: <span class="ruby-identifier">host</span> = <span class="ruby-identifier">host</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">request</span>)&#x000A;232: <span class="ruby-keyword kw">else</span>&#x000A;233: <span class="ruby-identifier">host</span> = <span class="ruby-identifier">host</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">source</span>)&#x000A;234: <span class="ruby-keyword kw">end</span>&#x000A;235: <span class="ruby-keyword kw">else</span>&#x000A;236: <span class="ruby-identifier">host</span> <span class="ruby-operator">%=</span> (<span class="ruby-identifier">source</span>.<span class="ruby-identifier">hash</span> <span class="ruby-operator">%</span> <span class="ruby-value">4</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">host</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/%d/</span>&#x000A;237: <span class="ruby-keyword kw">end</span>&#x000A;238: <span class="ruby-identifier">host</span>&#x000A;239: <span class="ruby-keyword kw">end</span></pre>
460
+ <pre id='M000016-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 263</span>&#x000A;263: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">compute_asset_host</span>(<span class="ruby-identifier">asset_host</span>, <span class="ruby-identifier">source</span>, <span class="ruby-identifier">options</span>={})&#x000A;264: <span class="ruby-identifier">host</span> = <span class="ruby-identifier">asset_host</span>&#x000A;265: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">host</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Proc</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">host</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:call</span>)&#x000A;266: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">host</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Proc</span>) <span class="ruby-operator">?</span>&#x000A;267: <span class="ruby-identifier">host</span>.<span class="ruby-identifier">arity</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">host</span>.<span class="ruby-identifier">method</span>(<span class="ruby-identifier">:call</span>).<span class="ruby-identifier">arity</span>&#x000A;268: <span class="ruby-keyword kw">when</span> <span class="ruby-value">2</span>&#x000A;269: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">defined?</span>(<span class="ruby-constant">ActionDispatch</span>)&#x000A;270: <span class="ruby-identifier">request_class</span> = <span class="ruby-constant">ActionDispatch</span><span class="ruby-operator">::</span><span class="ruby-constant">Request</span>&#x000A;271: <span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt"># Rails 2.x</span>&#x000A;272: <span class="ruby-identifier">request_class</span> = <span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">Request</span>&#x000A;273: <span class="ruby-keyword kw">end</span>&#x000A;274: <span class="ruby-identifier">request</span> = <span class="ruby-identifier">request_class</span>.<span class="ruby-identifier">new</span>(&#x000A;275: <span class="ruby-value str">'HTTPS'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:ssl</span>] <span class="ruby-operator">?</span> <span class="ruby-value str">'on'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'off'</span>)&#x000A;276: <span class="ruby-identifier">host</span> = <span class="ruby-identifier">host</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">request</span>)&#x000A;277: <span class="ruby-keyword kw">else</span>&#x000A;278: <span class="ruby-identifier">host</span> = <span class="ruby-identifier">host</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">source</span>)&#x000A;279: <span class="ruby-keyword kw">end</span>&#x000A;280: <span class="ruby-keyword kw">else</span>&#x000A;281: <span class="ruby-identifier">host</span> <span class="ruby-operator">%=</span> (<span class="ruby-identifier">source</span>.<span class="ruby-identifier">hash</span> <span class="ruby-operator">%</span> <span class="ruby-value">4</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">host</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/%d/</span>&#x000A;282: <span class="ruby-keyword kw">end</span>&#x000A;283: <span class="ruby-identifier">host</span>&#x000A;284: <span class="ruby-keyword kw">end</span></pre>
417
461
  </div>
418
462
  </div>
419
463
  <div class='method public-class' id='method-M000005'>
@@ -431,11 +475,32 @@
431
475
  <a class='source-toggle' href='#' onclick="toggleCode('M000005-source'); return false">
432
476
  [show source]
433
477
  </a>
434
- <pre id='M000005-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 65</span>&#x000A;65: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">config</span>&#x000A;66: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">cache?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">blank?</span>&#x000A;67: <span class="ruby-ivar">@config</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-constant">ERB</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-constant">CONFIG_FILEPATH</span>)).<span class="ruby-identifier">result</span>)&#x000A;68: <span class="ruby-keyword kw">end</span>&#x000A;69: <span class="ruby-ivar">@config</span>&#x000A;70: <span class="ruby-keyword kw">end</span></pre>
478
+ <pre id='M000005-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 47</span>&#x000A;47: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">config</span>&#x000A;48: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-constant">CONFIG_FILEPATH</span>)&#x000A;49: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'`config/assets.yml` is missing! '</span> <span class="ruby-operator">+</span>&#x000A;50: <span class="ruby-value str">'Run `rake asset_hat:config` to generate it.'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">return</span>&#x000A;51: <span class="ruby-keyword kw">end</span>&#x000A;52: &#x000A;53: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">cache?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">blank?</span>&#x000A;54: <span class="ruby-ivar">@config</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-constant">ERB</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-constant">CONFIG_FILEPATH</span>)).<span class="ruby-identifier">result</span>)&#x000A;55: <span class="ruby-keyword kw">end</span>&#x000A;56: <span class="ruby-ivar">@config</span>&#x000A;57: <span class="ruby-keyword kw">end</span></pre>
435
479
  </div>
436
480
  </div>
437
- <div class='method public-class' id='method-M000002'>
438
- <a name='M000002'></a>
481
+ <div class='method public-class' id='method-M000012'>
482
+ <a name='M000012'></a>
483
+ <div class='synopsis'>
484
+ <span class='name'>consider_all_requests_local?</span>
485
+ <span class='arguments'>()</span>
486
+ </div>
487
+ <div class='description'>
488
+ <p>
489
+ Returns the value of
490
+ <tt>Rails.application.config.consider_all_requests_local</tt> or its
491
+ equivalent in older versions of Rails. To modify this value, set
492
+ <tt>config.consider_all_requests_local</tt> (boolean) in your environment.
493
+ </p>
494
+ </div>
495
+ <div class='source'>
496
+ <a class='source-toggle' href='#' onclick="toggleCode('M000012-source'); return false">
497
+ [show source]
498
+ </a>
499
+ <pre id='M000012-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 185</span>&#x000A;185: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">consider_all_requests_local?</span>&#x000A;186: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">defined?</span>(<span class="ruby-constant">Rails</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:application</span>)&#x000A;187: <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">application</span>.<span class="ruby-identifier">config</span>.<span class="ruby-identifier">consider_all_requests_local</span>&#x000A;188: <span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt"># Rails 2.x</span>&#x000A;189: <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;190: <span class="ruby-keyword kw">end</span>&#x000A;191: <span class="ruby-keyword kw">end</span></pre>
500
+ </div>
501
+ </div>
502
+ <div class='method public-class' id='method-M000003'>
503
+ <a name='M000003'></a>
439
504
  <div class='synopsis'>
440
505
  <span class='name'>last_bundle_commit_id</span>
441
506
  <span class='arguments'>(bundle, type)</span>
@@ -452,14 +517,14 @@
452
517
  </p>
453
518
  </div>
454
519
  <div class='source'>
455
- <a class='source-toggle' href='#' onclick="toggleCode('M000002-source'); return false">
520
+ <a class='source-toggle' href='#' onclick="toggleCode('M000003-source'); return false">
456
521
  [show source]
457
522
  </a>
458
- <pre id='M000002-source'> <span class="ruby-comment cmt"># File lib/asset_hat/vcs.rb, line 45</span>&#x000A;45: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">last_bundle_commit_id</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>)&#x000A;46: <span class="ruby-comment cmt"># Process arguments</span>&#x000A;47: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>&#x000A;48: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>)&#x000A;49: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown type \&quot;#{type}\&quot;; should be one of: #{TYPES.join(', ')}.&quot;</span>&#x000A;50: <span class="ruby-keyword kw">return</span>&#x000A;51: <span class="ruby-keyword kw">end</span>&#x000A;52: &#x000A;53: <span class="ruby-comment cmt"># Default to `{:css =&gt; {}, :js =&gt; {}}`</span>&#x000A;54: <span class="ruby-ivar">@last_bundle_commit_ids</span> <span class="ruby-operator">||=</span>&#x000A;55: <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">inject</span>({}) { <span class="ruby-operator">|</span><span class="ruby-identifier">hsh</span>, <span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hsh</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">t</span> =<span class="ruby-operator">&gt;</span> {}) }&#x000A;56: &#x000A;57: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@last_bundle_commit_ids</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">bundle</span>].<span class="ruby-identifier">blank?</span>&#x000A;58: <span class="ruby-identifier">dir</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">assets_dir</span>(<span class="ruby-identifier">type</span>)&#x000A;59: <span class="ruby-identifier">filepaths</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bundle_filepaths</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>)&#x000A;60: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filepaths</span>.<span class="ruby-identifier">present?</span>&#x000A;61: <span class="ruby-ivar">@last_bundle_commit_ids</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">bundle</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">last_commit_id</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">filepaths</span>)&#x000A;62: <span class="ruby-keyword kw">end</span>&#x000A;63: <span class="ruby-keyword kw">end</span>&#x000A;64: &#x000A;65: <span class="ruby-ivar">@last_bundle_commit_ids</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">bundle</span>]&#x000A;66: <span class="ruby-keyword kw">end</span></pre>
523
+ <pre id='M000003-source'> <span class="ruby-comment cmt"># File lib/asset_hat/vcs.rb, line 45</span>&#x000A;45: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">last_bundle_commit_id</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>)&#x000A;46: <span class="ruby-comment cmt"># Process arguments</span>&#x000A;47: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>&#x000A;48: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>)&#x000A;49: <span class="ruby-identifier">raise</span> <span class="ruby-node">%{Unknown type &quot;#{type}&quot;; should be one of: #{TYPES.join(', ')}.}</span>&#x000A;50: <span class="ruby-keyword kw">return</span>&#x000A;51: <span class="ruby-keyword kw">end</span>&#x000A;52: &#x000A;53: <span class="ruby-comment cmt"># Default to `{:css =&gt; {}, :js =&gt; {}}`</span>&#x000A;54: <span class="ruby-ivar">@last_bundle_commit_ids</span> <span class="ruby-operator">||=</span>&#x000A;55: <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">inject</span>({}) { <span class="ruby-operator">|</span><span class="ruby-identifier">hsh</span>, <span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hsh</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">t</span> =<span class="ruby-operator">&gt;</span> {}) }&#x000A;56: &#x000A;57: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@last_bundle_commit_ids</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">bundle</span>].<span class="ruby-identifier">blank?</span>&#x000A;58: <span class="ruby-identifier">dir</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">assets_dir</span>(<span class="ruby-identifier">type</span>)&#x000A;59: <span class="ruby-identifier">filepaths</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bundle_filepaths</span>(<span class="ruby-identifier">bundle</span>, <span class="ruby-identifier">type</span>)&#x000A;60: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filepaths</span>.<span class="ruby-identifier">present?</span>&#x000A;61: <span class="ruby-ivar">@last_bundle_commit_ids</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">bundle</span>] =&#x000A;62: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">last_commit_id</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">filepaths</span>)&#x000A;63: <span class="ruby-keyword kw">end</span>&#x000A;64: <span class="ruby-keyword kw">end</span>&#x000A;65: &#x000A;66: <span class="ruby-ivar">@last_bundle_commit_ids</span>[<span class="ruby-identifier">type</span>][<span class="ruby-identifier">bundle</span>]&#x000A;67: <span class="ruby-keyword kw">end</span></pre>
459
524
  </div>
460
525
  </div>
461
- <div class='method public-class' id='method-M000001'>
462
- <a name='M000001'></a>
526
+ <div class='method public-class' id='method-M000002'>
527
+ <a name='M000002'></a>
463
528
  <div class='synopsis'>
464
529
  <span class='name'>last_commit_id</span>
465
530
  <span class='arguments'>(*args)</span>
@@ -481,14 +546,14 @@
481
546
  </dl>
482
547
  </div>
483
548
  <div class='source'>
484
- <a class='source-toggle' href='#' onclick="toggleCode('M000001-source'); return false">
549
+ <a class='source-toggle' href='#' onclick="toggleCode('M000002-source'); return false">
485
550
  [show source]
486
551
  </a>
487
- <pre id='M000001-source'> <span class="ruby-comment cmt"># File lib/asset_hat/vcs.rb, line 18</span>&#x000A;18: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">last_commit_id</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)&#x000A;19: <span class="ruby-comment cmt"># Process arguments</span>&#x000A;20: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">extract_options!</span>&#x000A;21: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">symbolize_keys</span>.<span class="ruby-identifier">reverse_merge</span>(<span class="ruby-identifier">:vcs</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">:git</span>)&#x000A;22: <span class="ruby-identifier">filepaths</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>)&#x000A;23: &#x000A;24: <span class="ruby-comment cmt"># Validate options</span>&#x000A;25: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:vcs</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">:git</span>&#x000A;26: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'Git is currently the only supported VCS.'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">return</span>&#x000A;27: <span class="ruby-keyword kw">end</span>&#x000A;28: &#x000A;29: <span class="ruby-ivar">@last_commit_ids</span> <span class="ruby-operator">||=</span> {}&#x000A;30: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@last_commit_ids</span>[<span class="ruby-identifier">filepaths</span>].<span class="ruby-identifier">blank?</span>&#x000A;31: <span class="ruby-identifier">h</span> = <span class="ruby-node">`git log -1 --pretty=format:%h #{filepaths} 2&gt;/dev/null`</span>&#x000A;32: <span class="ruby-comment cmt"># `h` has either the abbreviated Git commit hash or an empty string</span>&#x000A;33: <span class="ruby-ivar">@last_commit_ids</span>[<span class="ruby-identifier">filepaths</span>] = <span class="ruby-identifier">h</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">present?</span>&#x000A;34: <span class="ruby-keyword kw">end</span>&#x000A;35: <span class="ruby-ivar">@last_commit_ids</span>[<span class="ruby-identifier">filepaths</span>]&#x000A;36: <span class="ruby-keyword kw">end</span></pre>
552
+ <pre id='M000002-source'> <span class="ruby-comment cmt"># File lib/asset_hat/vcs.rb, line 18</span>&#x000A;18: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">last_commit_id</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)&#x000A;19: <span class="ruby-comment cmt"># Process arguments</span>&#x000A;20: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">extract_options!</span>&#x000A;21: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">symbolize_keys</span>.<span class="ruby-identifier">reverse_merge</span>(<span class="ruby-identifier">:vcs</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">:git</span>)&#x000A;22: <span class="ruby-identifier">filepaths</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>)&#x000A;23: &#x000A;24: <span class="ruby-comment cmt"># Validate options</span>&#x000A;25: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:vcs</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">:git</span>&#x000A;26: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'Git is currently the only supported VCS.'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">return</span>&#x000A;27: <span class="ruby-keyword kw">end</span>&#x000A;28: &#x000A;29: <span class="ruby-ivar">@last_commit_ids</span> <span class="ruby-operator">||=</span> {}&#x000A;30: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@last_commit_ids</span>[<span class="ruby-identifier">filepaths</span>].<span class="ruby-identifier">blank?</span>&#x000A;31: <span class="ruby-identifier">h</span> = <span class="ruby-node">`git log -1 --pretty=format:%h #{filepaths} 2&gt;/dev/null`</span>&#x000A;32: <span class="ruby-comment cmt"># `h` has either the abbreviated Git commit hash or an empty string</span>&#x000A;33: <span class="ruby-ivar">@last_commit_ids</span>[<span class="ruby-identifier">filepaths</span>] = <span class="ruby-identifier">h</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">present?</span>&#x000A;34: <span class="ruby-keyword kw">end</span>&#x000A;35: <span class="ruby-ivar">@last_commit_ids</span>[<span class="ruby-identifier">filepaths</span>]&#x000A;36: <span class="ruby-keyword kw">end</span></pre>
488
553
  </div>
489
554
  </div>
490
- <div class='method public-class' id='method-M000010'>
491
- <a name='M000010'></a>
555
+ <div class='method public-class' id='method-M000013'>
556
+ <a name='M000013'></a>
492
557
  <div class='synopsis'>
493
558
  <span class='name'>min_filepath</span>
494
559
  <span class='arguments'>(filepath, extension)</span>
@@ -500,19 +565,19 @@
500
565
  <pre>AssetHat.min_filepath('public/stylesheets/bundles/application.css', 'css')&#x000A; # =&gt; 'public/stylesheets/bundles/application.min.css'</pre>
501
566
  <p>
502
567
  See also <tt><a
503
- href="AssetHat/CSS.html#M000016">AssetHat::CSS.min_filepath</a></tt> and
504
- <tt><a href="AssetHat/JS.html#M000022">AssetHat::JS.min_filepath</a></tt>.
568
+ href="AssetHat/CSS.html#M000019">AssetHat::CSS.min_filepath</a></tt> and
569
+ <tt><a href="AssetHat/JS.html#M000025">AssetHat::JS.min_filepath</a></tt>.
505
570
  </p>
506
571
  </div>
507
572
  <div class='source'>
508
- <a class='source-toggle' href='#' onclick="toggleCode('M000010-source'); return false">
573
+ <a class='source-toggle' href='#' onclick="toggleCode('M000013-source'); return false">
509
574
  [show source]
510
575
  </a>
511
- <pre id='M000010-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 159</span>&#x000A;159: <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>, <span class="ruby-identifier">extension</span>)&#x000A;160: <span class="ruby-identifier">filepath</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-node">/([^\.]*).#{extension}$/</span>, <span class="ruby-node">&quot;\\1.min.#{extension}&quot;</span>)&#x000A;161: <span class="ruby-keyword kw">end</span></pre>
576
+ <pre id='M000013-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 200</span>&#x000A;200: <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>, <span class="ruby-identifier">extension</span>)&#x000A;201: <span class="ruby-identifier">filepath</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-node">/([^\.]*).#{extension}$/</span>, <span class="ruby-node">&quot;\\1.min.#{extension}&quot;</span>)&#x000A;202: <span class="ruby-keyword kw">end</span></pre>
512
577
  </div>
513
578
  </div>
514
- <div class='method public-class' id='method-M000014'>
515
- <a name='M000014'></a>
579
+ <div class='method public-class' id='method-M000017'>
580
+ <a name='M000017'></a>
516
581
  <div class='synopsis'>
517
582
  <span class='name'>ssl_asset_host_differs?</span>
518
583
  <span class='arguments'>()</span>
@@ -524,14 +589,14 @@
524
589
  </p>
525
590
  </div>
526
591
  <div class='source'>
527
- <a class='source-toggle' href='#' onclick="toggleCode('M000014-source'); return false">
592
+ <a class='source-toggle' href='#' onclick="toggleCode('M000017-source'); return false">
528
593
  [show source]
529
594
  </a>
530
- <pre id='M000014-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 243</span>&#x000A;243: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">ssl_asset_host_differs?</span>&#x000A;244: <span class="ruby-identifier">asset_host</span> = <span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">asset_host</span>&#x000A;245: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">compute_asset_host</span>(<span class="ruby-identifier">asset_host</span>, <span class="ruby-value str">'x.png'</span>) <span class="ruby-operator">!=</span>&#x000A;246: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">compute_asset_host</span>(<span class="ruby-identifier">asset_host</span>, <span class="ruby-value str">'x.png'</span>, <span class="ruby-identifier">:ssl</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>)&#x000A;247: <span class="ruby-keyword kw">end</span></pre>
595
+ <pre id='M000017-source'> <span class="ruby-comment cmt"># File lib/asset_hat.rb, line 288</span>&#x000A;288: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">ssl_asset_host_differs?</span>&#x000A;289: <span class="ruby-identifier">asset_host</span> = <span class="ruby-constant">ActionController</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">asset_host</span>&#x000A;290: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">compute_asset_host</span>(<span class="ruby-identifier">asset_host</span>, <span class="ruby-value str">'x.png'</span>) <span class="ruby-operator">!=</span>&#x000A;291: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">compute_asset_host</span>(<span class="ruby-identifier">asset_host</span>, <span class="ruby-value str">'x.png'</span>, <span class="ruby-identifier">:ssl</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>)&#x000A;292: <span class="ruby-keyword kw">end</span></pre>
531
596
  </div>
532
597
  </div>
533
- <div class='method public-class' id='method-M000004'>
534
- <a name='M000004'></a>
598
+ <div class='method public-class' id='method-M000001'>
599
+ <a name='M000001'></a>
535
600
  <div class='synopsis'>
536
601
  <span class='name'>version</span>
537
602
  <span class='arguments'>()</span>
@@ -542,10 +607,10 @@
542
607
  </p>
543
608
  </div>
544
609
  <div class='source'>
545
- <a class='source-toggle' href='#' onclick="toggleCode('M000004-source'); return false">
610
+ <a class='source-toggle' href='#' onclick="toggleCode('M000001-source'); return false">
546
611
  [show source]
547
612
  </a>
548
- <pre id='M000004-source'> <span class="ruby-comment cmt"># File lib/asset_hat/version.rb, line 3</span>&#x000A;3: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">version</span>&#x000A;4: <span class="ruby-identifier">data_filepath</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword kw">__FILE__</span>), <span class="ruby-node">%w[.. .. VERSION.yml]</span>)&#x000A;5: <span class="ruby-identifier">data</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">data_filepath</span>, <span class="ruby-value str">'r'</span>))&#x000A;6: [<span class="ruby-identifier">:major</span>, <span class="ruby-identifier">:minor</span>, <span class="ruby-identifier">:patch</span>, <span class="ruby-identifier">:build</span>].&#x000A;7: <span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">data</span>[<span class="ruby-identifier">x</span>] }.<span class="ruby-identifier">reject</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">:blank?</span>).<span class="ruby-identifier">join</span>(<span class="ruby-value str">'.'</span>)&#x000A;8: <span class="ruby-keyword kw">end</span></pre>
613
+ <pre id='M000001-source'> <span class="ruby-comment cmt"># File lib/asset_hat/version.rb, line 3</span>&#x000A;3: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">version</span>&#x000A;4: <span class="ruby-identifier">data_filepath</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword kw">__FILE__</span>), <span class="ruby-node">%w[.. .. VERSION.yml]</span>)&#x000A;5: <span class="ruby-identifier">data</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">data_filepath</span>, <span class="ruby-value str">'r'</span>))&#x000A;6: [<span class="ruby-identifier">:major</span>, <span class="ruby-identifier">:minor</span>, <span class="ruby-identifier">:patch</span>, <span class="ruby-identifier">:build</span>].&#x000A;7: <span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">data</span>[<span class="ruby-identifier">x</span>] }.<span class="ruby-identifier">reject</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">:blank?</span>).<span class="ruby-identifier">join</span>(<span class="ruby-value str">'.'</span>)&#x000A;8: <span class="ruby-keyword kw">end</span></pre>
549
614
  </div>
550
615
  </div>
551
616
  </div>