jsc 0.2.0 → 0.2.1
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/TODO.org +12 -0
- data/bin/#jsc# +119 -0
- data/js/extra/alcadialer_im.js +559 -0
- data/js/extra/strophe.js +3543 -0
- data/jsc.gemspec +66 -0
- data/lib/jsc/closure_compiler.rb +4 -4
- data/lib/jsc.rb +1 -1
- data/rdoc/classes/JSCompiler.html +649 -0
- data/rdoc/classes/String.html +118 -0
- data/rdoc/created.rid +1 -0
- data/rdoc/files/README_rdoc.html +234 -0
- data/rdoc/files/lib/jsc/closure_compiler_rb.html +151 -0
- data/rdoc/files/lib/jsc_rb.html +101 -0
- data/rdoc/fr_class_index.html +28 -0
- data/rdoc/fr_file_index.html +29 -0
- data/rdoc/fr_method_index.html +38 -0
- data/rdoc/index.html +26 -0
- data/rdoc/rdoc-style.css +208 -0
- data/tmp/aruba/js/compiled_code.js +4 -0
- data/tmp/aruba/js/errors.js +4 -0
- data/tmp/aruba/js/warnings.js +5 -0
- metadata +23 -2
@@ -0,0 +1,649 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>Module: JSCompiler</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="classHeader">
|
50
|
+
<table class="header-table">
|
51
|
+
<tr class="top-aligned-row">
|
52
|
+
<td><strong>Module</strong></td>
|
53
|
+
<td class="class-name-in-header">JSCompiler</td>
|
54
|
+
</tr>
|
55
|
+
<tr class="top-aligned-row">
|
56
|
+
<td><strong>In:</strong></td>
|
57
|
+
<td>
|
58
|
+
<a href="../files/lib/jsc/closure_compiler_rb.html">
|
59
|
+
lib/jsc/closure_compiler.rb
|
60
|
+
</a>
|
61
|
+
<br />
|
62
|
+
<a href="../files/lib/jsc_rb.html">
|
63
|
+
lib/jsc.rb
|
64
|
+
</a>
|
65
|
+
<br />
|
66
|
+
</td>
|
67
|
+
</tr>
|
68
|
+
|
69
|
+
</table>
|
70
|
+
</div>
|
71
|
+
<!-- banner header -->
|
72
|
+
|
73
|
+
<div id="bodyContent">
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
<div id="contextContent">
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
</div>
|
82
|
+
|
83
|
+
<div id="method-list">
|
84
|
+
<h3 class="section-bar">Methods</h3>
|
85
|
+
|
86
|
+
<div class="name-list">
|
87
|
+
<a href="#M000003">compile</a>
|
88
|
+
<a href="#M000005">compile_dir</a>
|
89
|
+
<a href="#M000001">create_json_request</a>
|
90
|
+
<a href="#M000008">create_statistics_output</a>
|
91
|
+
<a href="#M000004">full_compile</a>
|
92
|
+
<a href="#M000010">libpath</a>
|
93
|
+
<a href="#M000006">parse_json_output</a>
|
94
|
+
<a href="#M000011">path</a>
|
95
|
+
<a href="#M000002">post_to_cc</a>
|
96
|
+
<a href="#M000007">read_file</a>
|
97
|
+
<a href="#M000012">require_all_libs_relative_to</a>
|
98
|
+
<a href="#M000009">version</a>
|
99
|
+
</div>
|
100
|
+
</div>
|
101
|
+
|
102
|
+
</div>
|
103
|
+
|
104
|
+
|
105
|
+
<!-- if includes -->
|
106
|
+
|
107
|
+
<div id="section">
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
<!-- if method_list -->
|
117
|
+
<div id="methods">
|
118
|
+
<h3 class="section-bar">Public Class methods</h3>
|
119
|
+
|
120
|
+
<div id="method-M000003" class="method-detail">
|
121
|
+
<a name="M000003"></a>
|
122
|
+
|
123
|
+
<div class="method-heading">
|
124
|
+
<a href="#M000003" class="method-signature">
|
125
|
+
<span class="method-name">compile</span><span class="method-args">(arg, is_file, op, level)</span>
|
126
|
+
</a>
|
127
|
+
</div>
|
128
|
+
|
129
|
+
<div class="method-description">
|
130
|
+
<p>
|
131
|
+
Compiles a file or a piece of code and returns parsed output
|
132
|
+
</p>
|
133
|
+
<p>
|
134
|
+
Accepted parameters:
|
135
|
+
</p>
|
136
|
+
<ul>
|
137
|
+
<li><b>arg</b>: the code or the file <a href="JSCompiler.html#M000011">path</a>
|
138
|
+
to <a href="JSCompiler.html#M000003">compile</a>
|
139
|
+
|
140
|
+
</li>
|
141
|
+
<li><b>is_file</b>: 0 => arg is code
|
142
|
+
|
143
|
+
<pre>
|
144
|
+
1 => arg is a file path
|
145
|
+
</pre>
|
146
|
+
</li>
|
147
|
+
<li><b>op</b>: output_info parameter
|
148
|
+
|
149
|
+
</li>
|
150
|
+
<li><b>level</b>: compilation_level parameter
|
151
|
+
|
152
|
+
</li>
|
153
|
+
</ul>
|
154
|
+
<p><a class="source-toggle" href="#"
|
155
|
+
onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
|
156
|
+
<div class="method-source-code" id="M000003-source">
|
157
|
+
<pre>
|
158
|
+
<span class="ruby-comment cmt"># File lib/jsc/closure_compiler.rb, line 68</span>
|
159
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">compile</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-identifier">is_file</span>, <span class="ruby-identifier">op</span>, <span class="ruby-identifier">level</span>)
|
160
|
+
<span class="ruby-ivar">@op</span> = <span class="ruby-identifier">op</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">? </span><span class="ruby-constant">DEFAULT_SERVICE</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">op</span>
|
161
|
+
<span class="ruby-ivar">@level</span> = <span class="ruby-identifier">level</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">? </span><span class="ruby-constant">DEFAULT_LEVEL</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">level</span>
|
162
|
+
<span class="ruby-identifier">value</span> = <span class="ruby-keyword kw">true</span>
|
163
|
+
|
164
|
+
<span class="ruby-keyword kw">begin</span>
|
165
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">is_file</span>
|
166
|
+
<span class="ruby-identifier">js_code</span> = <span class="ruby-identifier">read_file</span>(<span class="ruby-identifier">arg</span>)
|
167
|
+
<span class="ruby-keyword kw">else</span>
|
168
|
+
<span class="ruby-identifier">js_code</span> = <span class="ruby-identifier">arg</span>
|
169
|
+
<span class="ruby-keyword kw">end</span>
|
170
|
+
<span class="ruby-identifier">resp</span>, <span class="ruby-identifier">data</span> = <span class="ruby-identifier">post_to_cc</span>(<span class="ruby-identifier">create_json_request</span>(<span class="ruby-identifier">js_code</span>))
|
171
|
+
|
172
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$debug</span>
|
173
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"#DEBUG data \n"</span>
|
174
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">data</span>
|
175
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\n"</span>
|
176
|
+
<span class="ruby-keyword kw">end</span>
|
177
|
+
|
178
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
179
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">e</span>
|
180
|
+
<span class="ruby-keyword kw">end</span>
|
181
|
+
|
182
|
+
<span class="ruby-identifier">parse_json_output</span>(<span class="ruby-identifier">data</span>)
|
183
|
+
<span class="ruby-keyword kw">end</span>
|
184
|
+
</pre>
|
185
|
+
</div>
|
186
|
+
</div>
|
187
|
+
</div>
|
188
|
+
|
189
|
+
<div id="method-M000005" class="method-detail">
|
190
|
+
<a name="M000005"></a>
|
191
|
+
|
192
|
+
<div class="method-heading">
|
193
|
+
<a href="#M000005" class="method-signature">
|
194
|
+
<span class="method-name">compile_dir</span><span class="method-args">(dir, op, level)</span>
|
195
|
+
</a>
|
196
|
+
</div>
|
197
|
+
|
198
|
+
<div class="method-description">
|
199
|
+
<p>
|
200
|
+
Calls <a href="JSCompiler.html#M000003">compile</a> method for every file
|
201
|
+
in <em>dir</em> directory
|
202
|
+
</p>
|
203
|
+
<p>
|
204
|
+
Accepted parameters:
|
205
|
+
</p>
|
206
|
+
<ul>
|
207
|
+
<li><b>dir</b>: the directory
|
208
|
+
|
209
|
+
</li>
|
210
|
+
<li><b>op</b>: output_info parameter
|
211
|
+
|
212
|
+
</li>
|
213
|
+
<li><b>level</b>: compilation_level parameter
|
214
|
+
|
215
|
+
</li>
|
216
|
+
</ul>
|
217
|
+
<p><a class="source-toggle" href="#"
|
218
|
+
onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
|
219
|
+
<div class="method-source-code" id="M000005-source">
|
220
|
+
<pre>
|
221
|
+
<span class="ruby-comment cmt"># File lib/jsc/closure_compiler.rb, line 115</span>
|
222
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">compile_dir</span>(<span class="ruby-identifier">dir</span>, <span class="ruby-identifier">op</span>, <span class="ruby-identifier">level</span>)
|
223
|
+
<span class="ruby-identifier">out</span> = <span class="ruby-value str">""</span>
|
224
|
+
<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">entries</span>(<span class="ruby-identifier">dir</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
225
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">extname</span>(<span class="ruby-identifier">file</span>) <span class="ruby-operator">==</span> <span class="ruby-value str">".js"</span>
|
226
|
+
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Statistics for file #{file}...\n"</span>
|
227
|
+
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">compile</span>(<span class="ruby-identifier">file</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">op</span>, <span class="ruby-identifier">level</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">"\n***************\n"</span>
|
228
|
+
<span class="ruby-keyword kw">end</span>
|
229
|
+
<span class="ruby-keyword kw">end</span>
|
230
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">out</span>
|
231
|
+
<span class="ruby-keyword kw">end</span>
|
232
|
+
</pre>
|
233
|
+
</div>
|
234
|
+
</div>
|
235
|
+
</div>
|
236
|
+
|
237
|
+
<div id="method-M000001" class="method-detail">
|
238
|
+
<a name="M000001"></a>
|
239
|
+
|
240
|
+
<div class="method-heading">
|
241
|
+
<a href="#M000001" class="method-signature">
|
242
|
+
<span class="method-name">create_json_request</span><span class="method-args">(code)</span>
|
243
|
+
</a>
|
244
|
+
</div>
|
245
|
+
|
246
|
+
<div class="method-description">
|
247
|
+
<p>
|
248
|
+
Creates the <em>JSON</em> hash for the request and returns the hash to send
|
249
|
+
along with the request
|
250
|
+
</p>
|
251
|
+
<p>
|
252
|
+
Accepted parameters:
|
253
|
+
</p>
|
254
|
+
<ul>
|
255
|
+
<li><b>code</b>: json_code parameter
|
256
|
+
|
257
|
+
</li>
|
258
|
+
<li><b>level</b>: compilation_level parameter
|
259
|
+
|
260
|
+
</li>
|
261
|
+
</ul>
|
262
|
+
<p><a class="source-toggle" href="#"
|
263
|
+
onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
|
264
|
+
<div class="method-source-code" id="M000001-source">
|
265
|
+
<pre>
|
266
|
+
<span class="ruby-comment cmt"># File lib/jsc/closure_compiler.rb, line 31</span>
|
267
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_json_request</span>(<span class="ruby-identifier">code</span>)
|
268
|
+
<span class="ruby-identifier">parameters</span> = {
|
269
|
+
<span class="ruby-value str">"code"</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">code</span>,
|
270
|
+
<span class="ruby-value str">"level"</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@level</span>,
|
271
|
+
<span class="ruby-value str">"format"</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"json"</span>,
|
272
|
+
<span class="ruby-value str">"info"</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@op</span>
|
273
|
+
}
|
274
|
+
<span class="ruby-keyword kw">end</span>
|
275
|
+
</pre>
|
276
|
+
</div>
|
277
|
+
</div>
|
278
|
+
</div>
|
279
|
+
|
280
|
+
<div id="method-M000008" class="method-detail">
|
281
|
+
<a name="M000008"></a>
|
282
|
+
|
283
|
+
<div class="method-heading">
|
284
|
+
<a href="#M000008" class="method-signature">
|
285
|
+
<span class="method-name">create_statistics_output</span><span class="method-args">(result)</span>
|
286
|
+
</a>
|
287
|
+
</div>
|
288
|
+
|
289
|
+
<div class="method-description">
|
290
|
+
<p>
|
291
|
+
Parses and returns the <em>result</em> JSON server response
|
292
|
+
</p>
|
293
|
+
<p>
|
294
|
+
Accepted parameters:
|
295
|
+
</p>
|
296
|
+
<ul>
|
297
|
+
<li><b>result</b>: the already parsed JSON server response
|
298
|
+
|
299
|
+
</li>
|
300
|
+
</ul>
|
301
|
+
<p><a class="source-toggle" href="#"
|
302
|
+
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
303
|
+
<div class="method-source-code" id="M000008-source">
|
304
|
+
<pre>
|
305
|
+
<span class="ruby-comment cmt"># File lib/jsc/closure_compiler.rb, line 189</span>
|
306
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_statistics_output</span>(<span class="ruby-identifier">result</span>)
|
307
|
+
<span class="ruby-identifier">size_improvement</span> = <span class="ruby-identifier">result</span>[<span class="ruby-value str">'originalSize'</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">result</span>[<span class="ruby-value str">'compressedSize'</span>]
|
308
|
+
<span class="ruby-identifier">size_gzip_improvement</span> = <span class="ruby-identifier">result</span>[<span class="ruby-value str">'originalGzipSize'</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">result</span>[<span class="ruby-value str">'compressedGzipSize'</span>]
|
309
|
+
<span class="ruby-identifier">rate_improvement</span> = (<span class="ruby-identifier">size_improvement</span> <span class="ruby-operator">*</span> <span class="ruby-value">100</span>)<span class="ruby-operator">/</span><span class="ruby-identifier">result</span>[<span class="ruby-value str">'originalSize'</span>]
|
310
|
+
<span class="ruby-identifier">rate_gzip_improvement</span> = (<span class="ruby-identifier">size_gzip_improvement</span> <span class="ruby-operator">*</span> <span class="ruby-value">100</span>)<span class="ruby-operator">/</span><span class="ruby-identifier">result</span>[<span class="ruby-value str">'originalGzipSize'</span>]
|
311
|
+
<span class="ruby-identifier">out</span> = <span class="ruby-node">"Original Size: #{result['originalSize']} bytes (#{result['originalGzipSize']} bytes gzipped) \n"</span>
|
312
|
+
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Compiled Size: #{result['compressedSize']} bytes (#{result['compressedGzipSize']} bytes gzipped) \n"</span>
|
313
|
+
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"\t Saved #{rate_improvement}% off the original size (#{rate_gzip_improvement}% off the gzipped size)"</span>
|
314
|
+
<span class="ruby-keyword kw">end</span>
|
315
|
+
</pre>
|
316
|
+
</div>
|
317
|
+
</div>
|
318
|
+
</div>
|
319
|
+
|
320
|
+
<div id="method-M000004" class="method-detail">
|
321
|
+
<a name="M000004"></a>
|
322
|
+
|
323
|
+
<div class="method-heading">
|
324
|
+
<a href="#M000004" class="method-signature">
|
325
|
+
<span class="method-name">full_compile</span><span class="method-args">(arg, file, level)</span>
|
326
|
+
</a>
|
327
|
+
</div>
|
328
|
+
|
329
|
+
<div class="method-description">
|
330
|
+
<p>
|
331
|
+
Compiles a file or a piece of code and returns parsed output if no errors
|
332
|
+
or warnings are found
|
333
|
+
</p>
|
334
|
+
<p>
|
335
|
+
Accepted parameters:
|
336
|
+
</p>
|
337
|
+
<ul>
|
338
|
+
<li><b>arg</b>: the code or the file <a href="JSCompiler.html#M000011">path</a>
|
339
|
+
to <a href="JSCompiler.html#M000003">compile</a>
|
340
|
+
|
341
|
+
</li>
|
342
|
+
<li><b>file</b>: 0 => arg is code
|
343
|
+
|
344
|
+
<pre>
|
345
|
+
1 => arg is a file path
|
346
|
+
</pre>
|
347
|
+
</li>
|
348
|
+
<li><b>level</b>: compilation_level parameter
|
349
|
+
|
350
|
+
</li>
|
351
|
+
</ul>
|
352
|
+
<p><a class="source-toggle" href="#"
|
353
|
+
onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
|
354
|
+
<div class="method-source-code" id="M000004-source">
|
355
|
+
<pre>
|
356
|
+
<span class="ruby-comment cmt"># File lib/jsc/closure_compiler.rb, line 102</span>
|
357
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">full_compile</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">level</span>)
|
358
|
+
[<span class="ruby-value str">'errors'</span>, <span class="ruby-value str">'warnings'</span>,<span class="ruby-value str">'compiled_code'</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span>
|
359
|
+
<span class="ruby-identifier">str</span> = <span class="ruby-constant">JSCompiler</span>.<span class="ruby-identifier">compile</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">x</span>, <span class="ruby-identifier">level</span>)
|
360
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">str</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">eql?</span>(<span class="ruby-value str">"No "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">x</span>)
|
361
|
+
<span class="ruby-keyword kw">end</span>
|
362
|
+
<span class="ruby-keyword kw">end</span>
|
363
|
+
</pre>
|
364
|
+
</div>
|
365
|
+
</div>
|
366
|
+
</div>
|
367
|
+
|
368
|
+
<div id="method-M000010" class="method-detail">
|
369
|
+
<a name="M000010"></a>
|
370
|
+
|
371
|
+
<div class="method-heading">
|
372
|
+
<a href="#M000010" class="method-signature">
|
373
|
+
<span class="method-name">libpath</span><span class="method-args">( *args )</span>
|
374
|
+
</a>
|
375
|
+
</div>
|
376
|
+
|
377
|
+
<div class="method-description">
|
378
|
+
<p>
|
379
|
+
Returns the library <a href="JSCompiler.html#M000011">path</a> for the
|
380
|
+
module. If any arguments are given, they will be joined to the end of the
|
381
|
+
libray <a href="JSCompiler.html#M000011">path</a> using <tt>File.join</tt>.
|
382
|
+
</p>
|
383
|
+
<p><a class="source-toggle" href="#"
|
384
|
+
onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
|
385
|
+
<div class="method-source-code" id="M000010-source">
|
386
|
+
<pre>
|
387
|
+
<span class="ruby-comment cmt"># File lib/jsc.rb, line 19</span>
|
388
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">libpath</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">args</span> )
|
389
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-constant">LIBPATH</span> <span class="ruby-operator">:</span> <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">LIBPATH</span>, <span class="ruby-identifier">args</span>.<span class="ruby-identifier">flatten</span>)
|
390
|
+
<span class="ruby-keyword kw">end</span>
|
391
|
+
</pre>
|
392
|
+
</div>
|
393
|
+
</div>
|
394
|
+
</div>
|
395
|
+
|
396
|
+
<div id="method-M000006" class="method-detail">
|
397
|
+
<a name="M000006"></a>
|
398
|
+
|
399
|
+
<div class="method-heading">
|
400
|
+
<a href="#M000006" class="method-signature">
|
401
|
+
<span class="method-name">parse_json_output</span><span class="method-args">(response)</span>
|
402
|
+
</a>
|
403
|
+
</div>
|
404
|
+
|
405
|
+
<div class="method-description">
|
406
|
+
<p>
|
407
|
+
Parses and returns JSON server <em>response</em>
|
408
|
+
</p>
|
409
|
+
<p>
|
410
|
+
Accepted parameters:
|
411
|
+
</p>
|
412
|
+
<ul>
|
413
|
+
<li><b>response</b>: the server response
|
414
|
+
|
415
|
+
</li>
|
416
|
+
</ul>
|
417
|
+
<p><a class="source-toggle" href="#"
|
418
|
+
onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
|
419
|
+
<div class="method-source-code" id="M000006-source">
|
420
|
+
<pre>
|
421
|
+
<span class="ruby-comment cmt"># File lib/jsc/closure_compiler.rb, line 130</span>
|
422
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_json_output</span>(<span class="ruby-identifier">response</span>)
|
423
|
+
<span class="ruby-identifier">out</span> = <span class="ruby-value str">""</span>
|
424
|
+
<span class="ruby-identifier">parsed_response</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">response</span>, <span class="ruby-identifier">:max_nesting</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">false</span>)
|
425
|
+
|
426
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parsed_response</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-value str">"serverErrors"</span>)
|
427
|
+
<span class="ruby-identifier">result</span> = <span class="ruby-identifier">parsed_response</span>[<span class="ruby-value str">'serverErrors'</span>]
|
428
|
+
<span class="ruby-identifier">error_message</span> = <span class="ruby-node">"Server Error: #{result[0]['error']} \n"</span>
|
429
|
+
<span class="ruby-identifier">error_message</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Error Code: #{result[0]['code']} \n"</span>
|
430
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">error_message</span>.<span class="ruby-identifier">red</span>
|
431
|
+
<span class="ruby-comment cmt"># return red, bold, error_message, reset</span>
|
432
|
+
<span class="ruby-keyword kw">end</span>
|
433
|
+
|
434
|
+
<span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@op</span>
|
435
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value str">"compiled_code"</span>
|
436
|
+
<span class="ruby-identifier">out</span> = <span class="ruby-identifier">parsed_response</span>[<span class="ruby-value str">'compiledCode'</span>]
|
437
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value str">"statistics"</span>
|
438
|
+
<span class="ruby-identifier">result</span> = <span class="ruby-identifier">parsed_response</span>[<span class="ruby-value str">'statistics'</span>]
|
439
|
+
<span class="ruby-identifier">out</span> = <span class="ruby-identifier">create_statistics_output</span>(<span class="ruby-identifier">result</span>)
|
440
|
+
<span class="ruby-keyword kw">else</span> <span class="ruby-value str">"errors"</span>
|
441
|
+
<span class="ruby-comment cmt">#case for errors or warnings</span>
|
442
|
+
<span class="ruby-keyword kw">begin</span>
|
443
|
+
<span class="ruby-identifier">result</span> = <span class="ruby-identifier">parsed_response</span>[<span class="ruby-ivar">@op</span>]
|
444
|
+
<span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">nil?</span>
|
445
|
+
<span class="ruby-identifier">num</span> = <span class="ruby-identifier">result</span>.<span class="ruby-identifier">size</span>
|
446
|
+
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"You've got #{result.size} #{@op}\n"</span>
|
447
|
+
<span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
448
|
+
<span class="ruby-identifier">result</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">message</span><span class="ruby-operator">|</span>
|
449
|
+
<span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
450
|
+
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"\n#{@op.singularize.capitalize} n.#{i}\n"</span>
|
451
|
+
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"\t#{message['type']}: "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">message</span>[<span class="ruby-ivar">@op</span>.<span class="ruby-identifier">singularize</span>] <span class="ruby-operator">+</span> <span class="ruby-node">" at line #{message['lineno']} character #{message['charno']}\n"</span>
|
452
|
+
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\t"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">message</span>[<span class="ruby-value str">'line'</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">message</span>[<span class="ruby-value str">'line'</span>].<span class="ruby-identifier">nil?</span>
|
453
|
+
<span class="ruby-keyword kw">end</span>
|
454
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">out</span>
|
455
|
+
<span class="ruby-keyword kw">else</span>
|
456
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-node">"No #{@op}"</span>
|
457
|
+
<span class="ruby-keyword kw">end</span>
|
458
|
+
<span class="ruby-keyword kw">rescue</span>
|
459
|
+
<span class="ruby-identifier">out</span> = <span class="ruby-value str">"Error parsing JSON output...Check your output"</span>
|
460
|
+
<span class="ruby-keyword kw">end</span>
|
461
|
+
<span class="ruby-keyword kw">end</span>
|
462
|
+
<span class="ruby-keyword kw">end</span>
|
463
|
+
</pre>
|
464
|
+
</div>
|
465
|
+
</div>
|
466
|
+
</div>
|
467
|
+
|
468
|
+
<div id="method-M000011" class="method-detail">
|
469
|
+
<a name="M000011"></a>
|
470
|
+
|
471
|
+
<div class="method-heading">
|
472
|
+
<a href="#M000011" class="method-signature">
|
473
|
+
<span class="method-name">path</span><span class="method-args">( *args )</span>
|
474
|
+
</a>
|
475
|
+
</div>
|
476
|
+
|
477
|
+
<div class="method-description">
|
478
|
+
<p>
|
479
|
+
Returns the lpath for the module. If any arguments are given, they will be
|
480
|
+
joined to the end of the <a href="JSCompiler.html#M000011">path</a> using
|
481
|
+
<tt>File.join</tt>.
|
482
|
+
</p>
|
483
|
+
<p><a class="source-toggle" href="#"
|
484
|
+
onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
|
485
|
+
<div class="method-source-code" id="M000011-source">
|
486
|
+
<pre>
|
487
|
+
<span class="ruby-comment cmt"># File lib/jsc.rb, line 27</span>
|
488
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">args</span> )
|
489
|
+
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-constant">PATH</span> <span class="ruby-operator">:</span> <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">PATH</span>, <span class="ruby-identifier">args</span>.<span class="ruby-identifier">flatten</span>)
|
490
|
+
<span class="ruby-keyword kw">end</span>
|
491
|
+
</pre>
|
492
|
+
</div>
|
493
|
+
</div>
|
494
|
+
</div>
|
495
|
+
|
496
|
+
<div id="method-M000002" class="method-detail">
|
497
|
+
<a name="M000002"></a>
|
498
|
+
|
499
|
+
<div class="method-heading">
|
500
|
+
<a href="#M000002" class="method-signature">
|
501
|
+
<span class="method-name">post_to_cc</span><span class="method-args">(data)</span>
|
502
|
+
</a>
|
503
|
+
</div>
|
504
|
+
|
505
|
+
<div class="method-description">
|
506
|
+
<p>
|
507
|
+
Sends the JSON request <em>data</em> hash to Google service and returns its
|
508
|
+
response
|
509
|
+
</p>
|
510
|
+
<p><a class="source-toggle" href="#"
|
511
|
+
onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
|
512
|
+
<div class="method-source-code" id="M000002-source">
|
513
|
+
<pre>
|
514
|
+
<span class="ruby-comment cmt"># File lib/jsc/closure_compiler.rb, line 42</span>
|
515
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">post_to_cc</span>(<span class="ruby-identifier">data</span>)
|
516
|
+
<span class="ruby-identifier">post_args</span> = {
|
517
|
+
<span class="ruby-value str">'js_code'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">data</span>[<span class="ruby-value str">"code"</span>],
|
518
|
+
<span class="ruby-value str">'compilation_level'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">data</span>[<span class="ruby-value str">"level"</span>],
|
519
|
+
<span class="ruby-value str">'output_format'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">data</span>[<span class="ruby-value str">"format"</span>],
|
520
|
+
<span class="ruby-value str">'output_info'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">data</span>[<span class="ruby-value str">"info"</span>]
|
521
|
+
}
|
522
|
+
|
523
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$debug</span>
|
524
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"#DEBUG post_args \n"</span>
|
525
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">post_args</span>
|
526
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\n"</span>
|
527
|
+
<span class="ruby-keyword kw">end</span>
|
528
|
+
|
529
|
+
<span class="ruby-comment cmt"># send the request</span>
|
530
|
+
<span class="ruby-identifier">resp</span>, <span class="ruby-identifier">data</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">post_form</span>(<span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-constant">GOOGLE_SERVICE_ADDRESS</span>), <span class="ruby-identifier">post_args</span>)
|
531
|
+
<span class="ruby-keyword kw">end</span>
|
532
|
+
</pre>
|
533
|
+
</div>
|
534
|
+
</div>
|
535
|
+
</div>
|
536
|
+
|
537
|
+
<div id="method-M000007" class="method-detail">
|
538
|
+
<a name="M000007"></a>
|
539
|
+
|
540
|
+
<div class="method-heading">
|
541
|
+
<a href="#M000007" class="method-signature">
|
542
|
+
<span class="method-name">read_file</span><span class="method-args">(file_name)</span>
|
543
|
+
</a>
|
544
|
+
</div>
|
545
|
+
|
546
|
+
<div class="method-description">
|
547
|
+
<p>
|
548
|
+
Reads file and returns its content
|
549
|
+
</p>
|
550
|
+
<p>
|
551
|
+
Accepted parameters:
|
552
|
+
</p>
|
553
|
+
<ul>
|
554
|
+
<li><b>file_name</b>: the absolute <a href="JSCompiler.html#M000011">path</a>
|
555
|
+
to the file
|
556
|
+
|
557
|
+
</li>
|
558
|
+
</ul>
|
559
|
+
<p><a class="source-toggle" href="#"
|
560
|
+
onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
|
561
|
+
<div class="method-source-code" id="M000007-source">
|
562
|
+
<pre>
|
563
|
+
<span class="ruby-comment cmt"># File lib/jsc/closure_compiler.rb, line 176</span>
|
564
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_file</span>(<span class="ruby-identifier">file_name</span>)
|
565
|
+
<span class="ruby-keyword kw">begin</span>
|
566
|
+
<span class="ruby-identifier">content</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file_name</span>).<span class="ruby-identifier">read</span>
|
567
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">content</span>
|
568
|
+
<span class="ruby-keyword kw">rescue</span>
|
569
|
+
<span class="ruby-identifier">raise</span>
|
570
|
+
<span class="ruby-keyword kw">end</span>
|
571
|
+
<span class="ruby-keyword kw">end</span>
|
572
|
+
</pre>
|
573
|
+
</div>
|
574
|
+
</div>
|
575
|
+
</div>
|
576
|
+
|
577
|
+
<div id="method-M000012" class="method-detail">
|
578
|
+
<a name="M000012"></a>
|
579
|
+
|
580
|
+
<div class="method-heading">
|
581
|
+
<a href="#M000012" class="method-signature">
|
582
|
+
<span class="method-name">require_all_libs_relative_to</span><span class="method-args">( fname, dir = nil )</span>
|
583
|
+
</a>
|
584
|
+
</div>
|
585
|
+
|
586
|
+
<div class="method-description">
|
587
|
+
<p>
|
588
|
+
Utility method used to require all files ending in .rb that lie in the
|
589
|
+
directory below this file that has the same name as the filename passed in.
|
590
|
+
Optionally, a specific <em>directory</em> name can be passed in such that
|
591
|
+
the <em>filename</em> does not have to be equivalent to the directory.
|
592
|
+
</p>
|
593
|
+
<p><a class="source-toggle" href="#"
|
594
|
+
onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
|
595
|
+
<div class="method-source-code" id="M000012-source">
|
596
|
+
<pre>
|
597
|
+
<span class="ruby-comment cmt"># File lib/jsc.rb, line 36</span>
|
598
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">require_all_libs_relative_to</span>( <span class="ruby-identifier">fname</span>, <span class="ruby-identifier">dir</span> = <span class="ruby-keyword kw">nil</span> )
|
599
|
+
<span class="ruby-identifier">dir</span> <span class="ruby-operator">||=</span> <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">fname</span>, <span class="ruby-value str">'.*'</span>)
|
600
|
+
<span class="ruby-identifier">search_me</span> = <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(
|
601
|
+
<span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">fname</span>), <span class="ruby-identifier">dir</span>, <span class="ruby-value str">'**'</span>, <span class="ruby-value str">'*.rb'</span>))
|
602
|
+
|
603
|
+
<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-identifier">search_me</span>).<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">rb</span><span class="ruby-operator">|</span> <span class="ruby-identifier">require</span> <span class="ruby-identifier">rb</span>}
|
604
|
+
<span class="ruby-keyword kw">end</span>
|
605
|
+
</pre>
|
606
|
+
</div>
|
607
|
+
</div>
|
608
|
+
</div>
|
609
|
+
|
610
|
+
<div id="method-M000009" class="method-detail">
|
611
|
+
<a name="M000009"></a>
|
612
|
+
|
613
|
+
<div class="method-heading">
|
614
|
+
<a href="#M000009" class="method-signature">
|
615
|
+
<span class="method-name">version</span><span class="method-args">()</span>
|
616
|
+
</a>
|
617
|
+
</div>
|
618
|
+
|
619
|
+
<div class="method-description">
|
620
|
+
<p>
|
621
|
+
Returns the <a href="JSCompiler.html#M000009">version</a> string for the
|
622
|
+
library.
|
623
|
+
</p>
|
624
|
+
<p><a class="source-toggle" href="#"
|
625
|
+
onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
|
626
|
+
<div class="method-source-code" id="M000009-source">
|
627
|
+
<pre>
|
628
|
+
<span class="ruby-comment cmt"># File lib/jsc.rb, line 11</span>
|
629
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">version</span>
|
630
|
+
<span class="ruby-constant">VERSION</span>
|
631
|
+
<span class="ruby-keyword kw">end</span>
|
632
|
+
</pre>
|
633
|
+
</div>
|
634
|
+
</div>
|
635
|
+
</div>
|
636
|
+
|
637
|
+
|
638
|
+
</div>
|
639
|
+
|
640
|
+
|
641
|
+
</div>
|
642
|
+
|
643
|
+
|
644
|
+
<div id="validator-badges">
|
645
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
646
|
+
</div>
|
647
|
+
|
648
|
+
</body>
|
649
|
+
</html>
|