asset_hat 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY +38 -19
- data/README.rdoc +99 -41
- data/Rakefile +17 -10
- data/VERSION.yml +3 -3
- data/app/helpers/asset_hat_helper.rb +40 -20
- data/asset_hat.gemspec +105 -101
- data/doc/classes/AssetHat.html +173 -59
- data/doc/classes/AssetHat/CSS.html +35 -26
- data/doc/classes/AssetHat/CSS/Engines.html +13 -12
- data/doc/classes/AssetHat/JS.html +11 -11
- data/doc/classes/AssetHat/JS/Engines.html +10 -10
- data/doc/classes/AssetHat/JS/Vendors.html +9 -5
- data/doc/classes/AssetHatHelper.html +18 -14
- data/doc/created.rid +1 -1
- data/doc/files/HISTORY.html +66 -24
- data/doc/files/LICENSE.html +1 -1
- data/doc/files/README_rdoc.html +112 -37
- data/doc/files/app/helpers/asset_hat_helper_rb.html +1 -1
- data/doc/files/lib/asset_hat/capistrano_rb.html +1 -1
- data/doc/files/lib/asset_hat/css_rb.html +1 -1
- data/doc/files/lib/asset_hat/js/vendors_rb.html +1 -1
- data/doc/files/lib/asset_hat/js_rb.html +1 -1
- data/doc/files/lib/asset_hat/tasks/css_rb.html +1 -1
- data/doc/files/lib/asset_hat/tasks/js_rb.html +1 -1
- data/doc/files/lib/asset_hat/tasks_rb.html +1 -1
- data/doc/files/lib/asset_hat/vcs_rb.html +1 -1
- data/doc/files/lib/asset_hat/version_rb.html +1 -1
- data/doc/files/lib/asset_hat_rb.html +1 -1
- data/doc/fr_method_index.html +54 -46
- data/lib/asset_hat.rb +100 -16
- data/lib/asset_hat/capistrano.rb +4 -3
- data/lib/asset_hat/css.rb +69 -20
- data/lib/asset_hat/js.rb +2 -2
- data/lib/asset_hat/js/vendors.rb +14 -10
- data/lib/asset_hat/tasks.rb +22 -3
- data/lib/asset_hat/tasks/css.rb +118 -74
- data/lib/asset_hat/tasks/js.rb +79 -35
- data/lib/asset_hat/vcs.rb +19 -0
- data/public/stylesheets/bundles/ssl/css-bundle-1.min.css +3 -0
- data/public/stylesheets/bundles/ssl/css-bundle-2.min.css +3 -0
- data/public/stylesheets/bundles/ssl/css-bundle-3.min.css +3 -0
- data/rails/init.rb +1 -16
- data/test/asset_hat_helper_test.rb +172 -28
- data/test/asset_hat_test.rb +167 -25
- metadata +54 -21
- 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="#
|
50
|
-
<li><a href="#
|
51
|
-
<li><a href="#
|
52
|
-
<li><a href="#
|
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-
|
80
|
-
<a name='
|
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’s last commit ID to its URL, e.g., <tt>background:
|
89
|
-
url(/images/foo.png?
|
89
|
+
url(/images/foo.png?ab12cd3)</tt>. This enables cache busting: If the
|
90
90
|
user’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('
|
96
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000018-source'); return false">
|
97
97
|
[show source]
|
98
98
|
</a>
|
99
|
-
<pre id='
|
99
|
+
<pre id='M000018-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 43</span>
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>)
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>
45: <span class="ruby-comment cmt"># Get absolute path</span>
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>)
47: 
48: <span class="ruby-comment cmt"># Convert to relative path</span>
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>)
50: 
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>)
52: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">commit_id</span>.<span class="ruby-identifier">present?</span>
53: <span class="ruby-node">"url(#{quote}#{src}#{src =~ /\?/ ? '&' : '?'}#{commit_id}#{quote})"</span>
54: <span class="ruby-keyword kw">else</span>
55: <span class="ruby-node">"url(#{quote}#{src}#{quote})"</span>
56: <span class="ruby-keyword kw">end</span>
57: <span class="ruby-keyword kw">end</span>
58: <span class="ruby-keyword kw">end</span></pre>
|
100
100
|
</div>
|
101
101
|
</div>
|
102
|
-
<div class='method public-class' id='method-
|
103
|
-
<a name='
|
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’s asset host, e.g.,
|
117
|
-
‘http://
|
118
|
-
|
117
|
+
‘http://cdn%d.example.com’. This value is typically taken from
|
118
|
+
<tt>config.action_controller.asset_host</tt> in the app’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://
|
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('
|
140
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000019-source'); return false">
|
132
141
|
[show source]
|
133
142
|
</a>
|
134
|
-
<pre id='
|
143
|
+
<pre id='M000019-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 77</span>
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>={})
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>
79: 
80: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">:ssl</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">false</span>)
81: 
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>
83: <span class="ruby-identifier">computed_asset_host</span> = <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">compute_asset_host</span>(
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>))
85: <span class="ruby-node">"url(#{quote}#{computed_asset_host}#{src}#{quote})"</span>
86: <span class="ruby-keyword kw">end</span>
87: <span class="ruby-keyword kw">end</span></pre>
|
135
144
|
</div>
|
136
145
|
</div>
|
137
|
-
<div class='method public-class' id='method-
|
138
|
-
<a name='
|
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')
 # => 'public/stylesheets/bundles/application.min.css'</pre>
|
149
158
|
</div>
|
150
159
|
<div class='source'>
|
151
|
-
<a class='source-toggle' href='#' onclick="toggleCode('
|
160
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000016-source'); return false">
|
152
161
|
[show source]
|
153
162
|
</a>
|
154
|
-
<pre id='
|
163
|
+
<pre id='M000016-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 14</span>
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>)
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>)
16: <span class="ruby-keyword kw">end</span></pre>
|
155
164
|
</div>
|
156
165
|
</div>
|
157
|
-
<div class='method public-class' id='method-
|
158
|
-
<a name='
|
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#
|
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('
|
187
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000017-source'); return false">
|
179
188
|
[show source]
|
180
189
|
</a>
|
181
|
-
<pre id='
|
190
|
+
<pre id='M000017-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 23</span>
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>={})
24: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">:engine</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:cssmin</span>)
25: 
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>
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>)
28: <span class="ruby-identifier">raise</span> <span class="ruby-node">%{
29: Unknown CSS minification engine '#{engine}'.
30: Allowed: #{ENGINES.map{ |e| "'#{e}'" }.join(', ')}
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>
32: <span class="ruby-keyword kw">end</span>
33: 
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>
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="#
|
50
|
-
<li><a href="#
|
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-
|
57
|
-
<a name='
|
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
|
65
|
+
<a href="../CSS.html">CSS</a> minification engine that mostly uses the
|
65
66
|
CSSMin gem, a Ruby port of Lecomte’s YUI Compressor and
|
66
67
|
Schlueter’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('
|
82
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000021-source'); return false">
|
82
83
|
[show source]
|
83
84
|
</a>
|
84
|
-
<pre id='
|
85
|
+
<pre id='M000021-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 116</span>
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>)
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>)
118: 
119: <span class="ruby-comment cmt"># Remove rules that have empty declaration blocks</span>
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>)
121: 
122: <span class="ruby-identifier">output</span>
123: <span class="ruby-keyword kw">end</span></pre>
|
85
86
|
</div>
|
86
87
|
</div>
|
87
|
-
<div class='method public-class' id='method-
|
88
|
-
<a name='
|
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('
|
103
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000020-source'); return false">
|
103
104
|
[show source]
|
104
105
|
</a>
|
105
|
-
<pre id='
|
106
|
+
<pre id='M000020-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 94</span>
 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>)
 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>)
 96: <span class="ruby-identifier">output</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
 97: 
 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>
 99: <span class="ruby-comment cmt"># Remove indentation and trailing whitespace (including line breaks)</span>
100: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip!</span>
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>
102: 
103: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">line</span>
104: <span class="ruby-keyword kw">end</span>
105: 
106: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">rewind</span>
107: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">read</span>
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="#
|
56
|
-
<li><a href="#
|
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-
|
96
|
-
<a name='
|
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')
 # => 'public/javascripts/bundles/application.min.js'</pre>
|
107
107
|
</div>
|
108
108
|
<div class='source'>
|
109
|
-
<a class='source-toggle' href='#' onclick="toggleCode('
|
109
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000022-source'); return false">
|
110
110
|
[show source]
|
111
111
|
</a>
|
112
|
-
<pre id='
|
112
|
+
<pre id='M000022-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 19</span>
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>)
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>)
21: <span class="ruby-keyword kw">end</span></pre>
|
113
113
|
</div>
|
114
114
|
</div>
|
115
|
-
<div class='method public-class' id='method-
|
116
|
-
<a name='
|
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#
|
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('
|
135
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000023-source'); return false">
|
136
136
|
[show source]
|
137
137
|
</a>
|
138
|
-
<pre id='
|
138
|
+
<pre id='M000023-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 28</span>
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>={})
29: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">:engine</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:jsmin</span>)
30: 
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>
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>)
33: <span class="ruby-identifier">raise</span> <span class="ruby-node">%{
34: Unknown JS minification engine '#{engine}'.
35: Allowed: #{ENGINES.map{ |e| "'#{e}'" }.join(', ')}
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>
37: <span class="ruby-keyword kw">end</span>
38: 
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>
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="#
|
50
|
-
<li><a href="#
|
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-
|
57
|
-
<a name='
|
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('
|
80
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000026-source'); return false">
|
81
81
|
[show source]
|
82
82
|
</a>
|
83
|
-
<pre id='
|
83
|
+
<pre id='M000026-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 79</span>
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>)
80: <span class="ruby-constant">JSMin</span>.<span class="ruby-identifier">minify</span>(<span class="ruby-identifier">input_string</span>)
81: <span class="ruby-keyword kw">end</span></pre>
|
84
84
|
</div>
|
85
85
|
</div>
|
86
|
-
<div class='method public-class' id='method-
|
87
|
-
<a name='
|
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('
|
106
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000025-source'); return false">
|
107
107
|
[show source]
|
108
108
|
</a>
|
109
|
-
<pre id='
|
109
|
+
<pre id='M000025-source'> <span class="ruby-comment cmt"># File lib/asset_hat/js.rb, line 48</span>
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>)
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>)
50: <span class="ruby-identifier">output</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
51: 
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>
53: <span class="ruby-comment cmt"># Remove indentation and trailing whitespace</span>
54: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip!</span>
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>
56: 
57: <span class="ruby-comment cmt"># Skip single-line comments</span>
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>
59: <span class="ruby-comment cmt"># TODO: Also skip single-line comments that began mid-line, but not</span>
60: <span class="ruby-comment cmt"># inside a string or regex</span>
61: 
62: <span class="ruby-comment cmt"># TODO: Skip multi-line comments</span>
63: <span class="ruby-comment cmt"># - Should not strip from within a string or regex</span>
64: <span class="ruby-comment cmt"># - Should not strip comments that begin with `/*!` (e.g., licenses)</span>
65: 
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">"\n"</span>)
67: <span class="ruby-keyword kw">end</span>
68: 
69: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">rewind</span>
70: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">read</span>
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="#
|
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-
|
109
|
-
<a name='
|
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., ‘1.4.0’ 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('
|
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>
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>={})
41: <span class="ruby-identifier">vendor_config</span> =
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>
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>
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>
45: 
46: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">use_local</span>
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>
48: <span class="ruby-keyword kw">end</span>
49: 
50: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">src</span>.<span class="ruby-identifier">blank?</span>
51: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">vendor</span>
52: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:jquery</span>
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">?
54: </span> <span class="ruby-node">"#{['jquery', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
55: <span class="ruby-node">"http://ajax.googleapis.com/ajax/libs/jquery/#{version}/jquery.min.js"</span>
56: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:jquery_ui</span>
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">?
58: </span> <span class="ruby-node">"#{['jquery-ui', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
59: <span class="ruby-node">"http://ajax.googleapis.com/ajax/libs/jqueryui/#{version}/jquery-ui.min.js"</span>
60: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:prototype</span>
61: <span class="ruby-comment cmt"># Prototype currently doesn't provide an official minified version.</span>
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">?
63: </span> <span class="ruby-node">"#{['prototype', version].compact.join('-')}.js"</span> <span class="ruby-operator">:</span>
64: <span class="ruby-node">"http://ajax.googleapis.com/ajax/libs/prototype/#{version}/prototype.js"</span>
65: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:scriptaculous</span>
66: <span class="ruby-comment cmt"># script.aculo.us currently doesn't provide an official minified version.</span>
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">?
68: </span> <span class="ruby-node">"#{['scriptaculous', version].compact.join('-')}.js"</span> <span class="ruby-operator">:</span>
69: <span class="ruby-node">"http://ajax.googleapis.com/ajax/libs/scriptaculous/#{version}/scriptaculous.js"</span>
70: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:mootools</span>
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">?
72: </span> <span class="ruby-node">"#{['mootools', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
73: <span class="ruby-node">"http://ajax.googleapis.com/ajax/libs/mootools/#{version}/mootools-yui-compressed.js"</span>
74: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:dojo</span>
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">?
76: </span> <span class="ruby-node">"#{['dojo', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
77: <span class="ruby-node">"http://ajax.googleapis.com/ajax/libs/dojo/#{version}/dojo/dojo.xd.js"</span>
78: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:swfobject</span>
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">?
80: </span> <span class="ruby-node">"#{['swfobject', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
81: <span class="ruby-node">"http://ajax.googleapis.com/ajax/libs/swfobject/#{version}/swfobject.js"</span>
82: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:yui</span>
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">?
84: </span> <span class="ruby-node">"#{['yui', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
85: <span class="ruby-node">"http://ajax.googleapis.com/ajax/libs/yui/#{version}/build/yuiloader/yuiloader-min.js"</span>
86: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ext_core</span>
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">?
88: </span> <span class="ruby-node">"#{['ext_core', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
89: <span class="ruby-node">"http://ajax.googleapis.com/ajax/libs/ext-core/#{version}/ext-core.js"</span>
90: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:webfont</span>
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">?
92: </span> <span class="ruby-node">"#{['webfont', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
93: <span class="ruby-node">"http://ajax.googleapis.com/ajax/libs/webfont/#{version}/webfont.js"</span>
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>
95: <span class="ruby-keyword kw">end</span>
96: <span class="ruby-keyword kw">end</span>
97: 
98: <span class="ruby-identifier">src</span>
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>
 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>={})
 43: <span class="ruby-identifier">vendor_config</span> =
 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>
 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>
 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>]
 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>
 48: 
 49: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">use_local</span>
 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>
 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>
 52: <span class="ruby-keyword kw">end</span>
 53: 
 54: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">src</span>.<span class="ruby-identifier">blank?</span>
 55: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">vendor</span>
 56: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:jquery</span>
 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">?
 58: </span> <span class="ruby-node">"#{['jquery', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
 59: <span class="ruby-node">"http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/jquery/#{version}/jquery.min.js"</span>
 60: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:jquery_ui</span>
 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">?
 62: </span> <span class="ruby-node">"#{['jquery-ui', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
 63: <span class="ruby-node">"http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/jqueryui/#{version}/jquery-ui.min.js"</span>
 64: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:prototype</span>
 65: <span class="ruby-comment cmt"># Prototype currently doesn't provide an official minified version.</span>
 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">?
 67: </span> <span class="ruby-node">"#{['prototype', version].compact.join('-')}.js"</span> <span class="ruby-operator">:</span>
 68: <span class="ruby-node">"http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/prototype/#{version}/prototype.js"</span>
 69: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:scriptaculous</span>
 70: <span class="ruby-comment cmt"># script.aculo.us currently doesn't provide an official minified version.</span>
 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">?
 72: </span> <span class="ruby-node">"#{['scriptaculous', version].compact.join('-')}.js"</span> <span class="ruby-operator">:</span>
 73: <span class="ruby-node">"http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/scriptaculous/#{version}/scriptaculous.js"</span>
 74: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:mootools</span>
 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">?
 76: </span> <span class="ruby-node">"#{['mootools', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
 77: <span class="ruby-node">"http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/mootools/#{version}/mootools-yui-compressed.js"</span>
 78: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:dojo</span>
 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">?
 80: </span> <span class="ruby-node">"#{['dojo', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
 81: <span class="ruby-node">"http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/dojo/#{version}/dojo/dojo.xd.js"</span>
 82: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:swfobject</span>
 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">?
 84: </span> <span class="ruby-node">"#{['swfobject', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
 85: <span class="ruby-node">"http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/swfobject/#{version}/swfobject.js"</span>
 86: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:yui</span>
 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">?
 88: </span> <span class="ruby-node">"#{['yui', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
 89: <span class="ruby-node">"http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/yui/#{version}/build/yuiloader/yuiloader-min.js"</span>
 90: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ext_core</span>
 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">?
 92: </span> <span class="ruby-node">"#{['ext_core', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
 93: <span class="ruby-node">"http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/ext-core/#{version}/ext-core.js"</span>
 94: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:webfont</span>
 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">?
 96: </span> <span class="ruby-node">"#{['webfont', version].compact.join('-')}.min.js"</span> <span class="ruby-operator">:</span>
 97: <span class="ruby-node">"http#{'s' if use_ssl}://ajax.googleapis.com/ajax/libs/webfont/#{version}/webfont.js"</span>
 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>
 99: <span class="ruby-keyword kw">end</span>
100: <span class="ruby-keyword kw">end</span>
101: 
102: <span class="ruby-identifier">src</span>
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="#
|
51
|
-
<li><a href="#
|
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-
|
70
|
-
<a name='
|
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#
|
77
|
+
<tt><a href="AssetHatHelper.html#M000027">include_css</a></tt> is a smart
|
78
78
|
wrapper for Rails’ <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'
=> <link href="/stylesheets/reset.min.css" ... />
 <link href="/stylesheets/application.min.css" ... />
 <link href="/stylesheets/clearfix.min.css" ... /></pre>
|
98
|
+
<p>
|
99
|
+
Include a stylesheet with extra media types:
|
100
|
+
</p>
|
101
|
+
<pre>include_css 'mobile', :media => 'handheld,screen,projection'
=> <link href="/stylesheets/mobile.min.css"
 media="handheld,screen,projection" ... /></pre>
|
98
102
|
</div>
|
99
103
|
<div class='source'>
|
100
|
-
<a class='source-toggle' href='#' onclick="toggleCode('
|
104
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000027-source'); return false">
|
101
105
|
[show source]
|
102
106
|
</a>
|
103
|
-
<pre id='
|
107
|
+
<pre id='M000027-source'> <span class="ruby-comment cmt"># File app/helpers/asset_hat_helper.rb, line 129</span>
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>)
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>
131: 
132: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span> <span class="ruby-operator">||=</span> {}
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> {}
134: 
135: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">extract_options!</span>
136: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">symbolize_keys!</span>.<span class="ruby-identifier">reverse_merge!</span>(
137: <span class="ruby-identifier">:media</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'screen,projection'</span>, <span class="ruby-identifier">:ssl</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">ssl?</span>)
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>
139: 
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>
141: <span class="ruby-comment cmt"># Generate HTML and write to cache</span>
142: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:ssl</span>] <span class="ruby-operator">&&=</span> <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">ssl_asset_host_differs?</span>
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>] =
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>]))
145: <span class="ruby-keyword kw">end</span>
146: 
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>]
148: <span class="ruby-identifier">html</span>
149: <span class="ruby-keyword kw">end</span></pre>
|
104
108
|
</div>
|
105
109
|
</div>
|
106
|
-
<div class='method public-instance' id='method-
|
107
|
-
<a name='
|
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#
|
118
|
+
<tt><a href="AssetHatHelper.html#M000028">include_js</a></tt> is a smart
|
115
119
|
wrapper for Rails’ <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
|
133
|
+
<pre># Development/test environment:
include_js :jquery
=> <script src="/javascripts/jquery-VERSION.min.js" ...></script>

# Staging/production environment:
include_js :jquery
=> <script src="http://ajax.googleapis.com/.../jquery.min.js" ...></script>
 # Set jQuery versions either in `config/assets.yml`, or by using
 # `include_js :jquery, :version => '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 => 'application'
=> <script src="/javascripts/bundles/application.min.js" ...></script></pre>
|
135
139
|
<p>
|
@@ -142,10 +146,10 @@
|
|
142
146
|
<pre>include_js 'bloombox', 'jquery.cookie', 'jquery.json.min'
=> <script src="/javascripts/bloombox.min.js" ...></script>
 <script src="/javascripts/jquery.cookie.min.js" ...></script>
 <script src="/javascripts/jquery.json.min.js" ...></script></pre>
|
143
147
|
</div>
|
144
148
|
<div class='source'>
|
145
|
-
<a class='source-toggle' href='#' onclick="toggleCode('
|
149
|
+
<a class='source-toggle' href='#' onclick="toggleCode('M000028-source'); return false">
|
146
150
|
[show source]
|
147
151
|
</a>
|
148
|
-
<pre id='
|
152
|
+
<pre id='M000028-source'> <span class="ruby-comment cmt"># File app/helpers/asset_hat_helper.rb, line 189</span>
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>)
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>
191: 
192: <span class="ruby-constant">AssetHat</span>.<span class="ruby-identifier">html_cache</span> <span class="ruby-operator">||=</span> {}
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> {}
194: 
195: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">extract_options!</span>
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">></span> <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">ssl?</span>)
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>
198: 
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>
200: <span class="ruby-comment cmt"># Generate HTML and write to cache</span>
201: 
202: <span class="ruby-identifier">html</span> = []
203: <span class="ruby-identifier">included_vendors</span> = (<span class="ruby-identifier">args</span> <span class="ruby-operator">&</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>)
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>
205: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">delete</span> <span class="ruby-identifier">vendor</span>
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>(
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>))
208: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</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">></span> <span class="ruby-keyword kw">true</span>)
209: <span class="ruby-keyword kw">end</span>
210: 
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>
212: 
213: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</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>]))
214: <span class="ruby-identifier">html</span> = <span class="ruby-identifier">html</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">"\n"</span>).<span class="ruby-identifier">strip</span>
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>
216: <span class="ruby-keyword kw">end</span>
217: 
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>]
219: <span class="ruby-identifier">html</span>
220: <span class="ruby-keyword kw">end</span></pre>
|
149
153
|
</div>
|
150
154
|
</div>
|
151
155
|
</div>
|