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