golf 0.4.14 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/Gemfile.lock +3 -1
  2. data/golf.gemspec +1 -0
  3. data/lib/golf/compiler.rb +60 -21
  4. data/lib/golf/filter.rb +10 -0
  5. data/lib/golf/filters/dummy_filter.rb +11 -0
  6. data/lib/golf/version.rb +1 -1
  7. data/lib/golf.rb +2 -1
  8. data/test/reference_app/golfapp/components/HelloWorld/HelloWorld.html +13 -0
  9. data/test/reference_app/golfapp/components/golf/cart/Admin/Admin.html +13 -0
  10. data/test/reference_app/golfapp/components/golf/cart/Cart/Cart.html +16 -0
  11. data/test/reference_app/golfapp/components/golf/cart/Product/Product.html +21 -0
  12. data/test/reference_app/golfapp/components/golf/cart/ProductListing/ProductListing.html +19 -0
  13. data/test/reference_app/golfapp/components/golf/cart/Store/Store.html +18 -0
  14. data/test/reference_app/golfapp/components.js +1 -0
  15. data/test/reference_app/golfapp/controller.js +28 -0
  16. data/test/reference_app/golfapp/img/ Timer & Non-Stick.jpeg +0 -0
  17. data/test/reference_app/golfapp/img/134lines.jpeg +0 -0
  18. data/test/reference_app/golfapp/img/Q33 Sail Plan.jpeg +0 -0
  19. data/test/reference_app/golfapp/img/a/b/qwer +0 -0
  20. data/test/reference_app/golfapp/img/em> - Brushed Stainless Steel.jpeg +0 -0
  21. data/test/reference_app/golfapp/img/em> - White.jpeg +0 -0
  22. data/test/reference_app/golfapp/img/em> Broil CTO7100B.jpeg +0 -0
  23. data/test/reference_app/golfapp/img/em> Broiler - Stainless.jpeg +0 -0
  24. data/test/reference_app/golfapp/img/em> with Countdo.jpeg +0 -0
  25. data/test/reference_app/golfapp/img/em> with Element IQ.jpeg +0 -0
  26. data/test/reference_app/golfapp/img/em> with OneTouch ...jpeg +0 -0
  27. data/test/reference_app/golfapp/img/em> with Pizza.jpeg +0 -0
  28. data/test/reference_app/golfapp/img/em>-1.jpeg +0 -0
  29. data/test/reference_app/golfapp/img/em>-2.jpeg +0 -0
  30. data/test/reference_app/golfapp/img/em>-3.jpeg +0 -0
  31. data/test/reference_app/golfapp/img/em>-Black.jpeg +0 -0
  32. data/test/reference_app/golfapp/img/em>.jpeg +0 -0
  33. data/test/reference_app/golfapp/img/unnamed.jpeg +0 -0
  34. data/test/reference_app/golfapp/plugins/mylib.js +0 -0
  35. data/test/reference_app/golfapp/scripts/00-myscript.js +0 -0
  36. data/test/reference_app/golfapp/scripts/01-jquery.tmpl.js +484 -0
  37. data/test/reference_app/golfapp/styles/main.css +0 -0
  38. data/test/test_compiler.rb +87 -7
  39. metadata +47 -17
  40. data/test/twitter_compiled/Gemfile +0 -6
  41. data/test/twitter_compiled/config.ru +0 -7
  42. data/test/twitter_compiled/golfapp/app_error.html +0 -60
  43. data/test/twitter_compiled/golfapp/components/golf/twitter/Search/Search.html +0 -29
  44. data/test/twitter_compiled/golfapp/components/golf/twitter/Tweet/Tweet.html +0 -16
  45. data/test/twitter_compiled/golfapp/components.js +0 -1
  46. data/test/twitter_compiled/golfapp/controller.js +0 -9
  47. data/test/twitter_compiled/golfapp/index.html +0 -58
  48. data/test/twitter_compiled/golfapp/jquery.address.js +0 -439
  49. data/test/twitter_compiled/golfapp/jquery.golf.js +0 -942
  50. data/test/twitter_compiled/golfapp/jquery.js +0 -4376
  51. data/test/twitter_compiled/golfapp/plugins/twitter.js +0 -14
  52. data/test/twitter_compiled/golfapp/welcome2golf.html +0 -50
  53. /data/test/{twitter_compiled/golfapp/scripts/00-myscript.js → reference_app/golfapp/img/a/asdf} +0 -0
  54. /data/test/{twitter_compiled/golfapp/styles/main.css → reference_app/golfapp/img/a/b/c/zxcv} +0 -0
@@ -1,439 +0,0 @@
1
- /*
2
- * jQuery Address Plugin v1.0
3
- * http://www.asual.com/jquery/address/
4
- *
5
- * Copyright (c) 2009 Rostislav Hristov
6
- * Dual licensed under the MIT and GPL licenses.
7
- * http://docs.jquery.com/License
8
- *
9
- * Date: 2009-04-28 16:54:00 +0300 (Tue, 28 Apr 2009)
10
- * Revision: 399
11
- */
12
- (function ($) {
13
-
14
- $.address = (function () {
15
-
16
- var _trigger = function(name) {
17
- $(this).trigger(
18
- $.extend($.Event(name),
19
- (function() {
20
- var event = {
21
- value: this.value(),
22
- path: this.path(),
23
- pathNames: this.pathNames(),
24
- parameterNames: this.parameterNames(),
25
- parameters: {},
26
- queryString: this.queryString()
27
- };
28
- for (var i = 0, l = event.parameterNames.length; i < l; i++)
29
- event.parameters[event.parameterNames[i]] = this.parameter(event.parameterNames[i]);
30
- return event;
31
- }).call(this)
32
- )
33
- );
34
- };
35
-
36
- var _init = function() {
37
- _trigger.call($.address, 'init');
38
- };
39
-
40
- var _change = function() {
41
- _trigger.call($.address, 'change');
42
- };
43
-
44
- var _getHash = function() {
45
- var index = _l.href.indexOf('#');
46
- return index != -1 ? _ec(_dc(_l.href.substr(index + 1))) : '';
47
- };
48
-
49
- var _getWindow = function() {
50
- try {
51
- top.document;
52
- return top;
53
- } catch (e) {
54
- return window;
55
- }
56
- };
57
-
58
- var _strictCheck = function(value, force) {
59
- if (_opts.strict)
60
- value = force ? (value.substr(0, 1) != '/' ? '/' + value : value) : (value == '' ? '/' : value);
61
- return value;
62
- };
63
-
64
- var _ieLocal = function(value, direction) {
65
- return (_msie && _l.protocol == 'file:') ?
66
- (direction ? _value.replace(/\?/, '%3F') : _value.replace(/%253F/, '?')) : value;
67
- };
68
-
69
- var _searchScript = function(el) {
70
- for (var i = 0, l = el.childNodes.length, s; i < l; i++) {
71
- if (el.childNodes[i].src)
72
- _url = String(el.childNodes[i].src);
73
- if (s = _searchScript(el.childNodes[i]))
74
- return s;
75
- }
76
- };
77
-
78
- var _listen = function() {
79
- if (!_silent) {
80
- var hash = _getHash();
81
- var diff = !(_value == hash);
82
- if (_safari && _version < 523) {
83
- if (_length != _h.length) {
84
- _length = _h.length;
85
- if (typeof _stack[_length - 1] != UNDEFINED)
86
- _value = _stack[_length - 1];
87
- _update();
88
- }
89
- } else if (_msie && diff) {
90
- if (_version < 7)
91
- _l.reload();
92
- else
93
- _setters.value(hash);
94
- } else if (diff) {
95
- _value = hash;
96
- _update();
97
- }
98
- }
99
- };
100
-
101
- var _update = function() {
102
- _change();
103
- _st(_track, 10);
104
- };
105
-
106
- var _track = function() {
107
- var value = (_l.pathname + (/\/$/.test(_l.pathname) ? '' : '/') + _getters.value()).replace(/\/\//, '/').replace(/^\/$/, '');
108
- var fn = window[_opts.tracker];
109
- if (typeof fn == FUNCTION)
110
- fn(value);
111
- else if (typeof pageTracker != UNDEFINED && typeof pageTracker._trackPageview == FUNCTION)
112
- pageTracker._trackPageview(value);
113
- else if (typeof urchinTracker == FUNCTION)
114
- urchinTracker(value);
115
- };
116
-
117
- var _htmlWrite = function() {
118
- var doc = _iframe.contentWindow.document;
119
- doc.open();
120
- doc.write('<html><head><title>' + _d.title + '</title><script>var ' + ID + ' = "' + _getHash() + '";</script></head></html>');
121
- doc.close();
122
- };
123
-
124
- var _load = function() {
125
- if (!_loaded) {
126
- _loaded = true;
127
- $('a').attr('xref', function() {
128
- return $(this).attr('href');
129
- });
130
- if (_msie && _version < 8) {
131
- _d.body.innerHTML = '<iframe id="' + ID + '" src="javascript:false;" width="0" height="0"></iframe>' + _d.body.innerHTML;
132
- _iframe = _d.getElementById(ID);
133
- _st(function() {
134
- $(_iframe).bind('load', function() {
135
- var win = _iframe.contentWindow;
136
- var src = win.location.href;
137
- _value = (typeof win[ID] != UNDEFINED ? win[ID] : '');
138
- if (_value != _getHash()) {
139
- _update();
140
- _l.hash = _ieLocal(_value, true);
141
- }
142
- });
143
- if (typeof _iframe.contentWindow[ID] == UNDEFINED)
144
- _htmlWrite();
145
- }, 50);
146
- } else if (_safari) {
147
- if (_version < 418) {
148
- $(_d.body).append('<form id="' + ID + '" style="position:absolute;top:-9999px;" method="get"></form>');
149
- _form = _d.getElementById(ID);
150
- }
151
- if (typeof _l[ID] == UNDEFINED) _l[ID] = {};
152
- if (typeof _l[ID][_l.pathname] != UNDEFINED) _stack = _l[ID][_l.pathname].split(',');
153
- }
154
-
155
- _st(function() {
156
- _init();
157
- _change();
158
- _track();
159
- }, 1);
160
-
161
- if (_msie && _version >= 8)
162
- _d.body.onhashchange = _listen;
163
- else
164
- _si(_listen, 50);
165
-
166
- $('a').attr('href', function() {
167
- return $(this).attr('xref');
168
- }).removeAttr('xref');
169
-
170
- $('a[rel*=address:]').address();
171
- }
172
- };
173
-
174
- var _getters = {
175
- baseURL: function() {
176
- var url = _l.href;
177
- if (url.indexOf('#') != -1)
178
- url = url.substr(0, url.indexOf('#'));
179
- if (url.substr(url.length - 1) == '/')
180
- url = url.substr(0, url.length - 1);
181
- return url;
182
- },
183
- strict: function() {
184
- return _opts.strict;
185
- },
186
- history: function() {
187
- return _opts.history;
188
- },
189
- tracker: function() {
190
- return _opts.tracker;
191
- },
192
- title: function() {
193
- return _d.title;
194
- },
195
- value: function() {
196
- if (!_supported) return null;
197
- return _dc(_strictCheck(_ieLocal(_value, false), false));
198
- },
199
- path: function() {
200
- var value = this.value();
201
- return (value.indexOf('?') != -1) ? value.split('?')[0] : value;
202
- },
203
- pathNames: function() {
204
- var path = this.path();
205
- var names = path.split('/');
206
- if (path.substr(0, 1) == '/' || path.length == 0)
207
- names.splice(0, 1);
208
- if (path.substr(path.length - 1, 1) == '/')
209
- names.splice(names.length - 1, 1);
210
- return names;
211
- },
212
- queryString: function() {
213
- var value = this.value();
214
- var index = value.indexOf('?');
215
- return (index != -1 && index < value.length) ? value.substr(index + 1) : '';
216
- },
217
- parameter: function(param) {
218
- var value = this.value();
219
- var index = value.indexOf('?');
220
- if (index != -1) {
221
- value = value.substr(index + 1);
222
- var params = value.split('&');
223
- var p, i = params.length;
224
- while(i--) {
225
- p = params[i].split('=');
226
- if (p[0] == param)
227
- return p[1];
228
- }
229
- }
230
- },
231
- parameterNames: function() {
232
- var value = this.value();
233
- var index = value.indexOf('?');
234
- var names = [];
235
- if (index != -1) {
236
- value = value.substr(index + 1);
237
- if (value != '' && value.indexOf('=') != -1) {
238
- var params = value.split('&');
239
- var i = 0;
240
- while(i < params.length) {
241
- names.push(params[i].split('=')[0]);
242
- i++;
243
- }
244
- }
245
- }
246
- return names;
247
- }
248
- };
249
-
250
- var _setters = {
251
- strict: function(strict) {
252
- _opts.strict = strict;
253
- },
254
- history: function(history) {
255
- _opts.history = history;
256
- },
257
- tracker: function(tracker) {
258
- _opts.tracker = tracker;
259
- },
260
- title: function(title) {
261
- _st(function() {
262
- _title = _d.title = title;
263
- if (_juststart && _iframe && _iframe.contentWindow && _iframe.contentWindow.document) {
264
- _iframe.contentWindow.document.title = title;
265
- _juststart = false;
266
- }
267
- if (!_justset && _mozilla)
268
- _l.replace(_l.href.indexOf('#') != -1 ? _l.href : _l.href + '#');
269
- _justset = false;
270
- }, 50);
271
- },
272
- value: function(value) {
273
- value = _ec(_dc(_strictCheck(value, true)));
274
- if (value == '/') value = '';
275
- if (_value == value) return;
276
- _justset = true;
277
- _value = value;
278
- _silent = true;
279
- _update();
280
- _stack[_h.length] = _value;
281
- if (_safari) {
282
- if (_opts.history) {
283
- _l[ID][_l.pathname] = _stack.toString();
284
- _length = _h.length + 1;
285
- if (_version < 418) {
286
- if (_l.search == '') {
287
- _form.action = '#' + _value;
288
- _form.submit();
289
- }
290
- } else if (_version < 523 || _value == '') {
291
- var evt = _d.createEvent('MouseEvents');
292
- evt.initEvent('click', true, true);
293
- var anchor = _d.createElement('a');
294
- anchor.href = '#' + _value;
295
- anchor.dispatchEvent(evt);
296
- } else {
297
- _l.hash = '#' + _value;
298
- }
299
- } else {
300
- _l.replace('#' + _value);
301
- }
302
- } else if (_value != _getHash()) {
303
- if (_opts.history)
304
- _l.hash = '#' + _ieLocal(_value, true);
305
- else
306
- _l.replace('#' + _value);
307
- }
308
- if ((_msie && _version < 8) && _opts.history) {
309
- _st(_htmlWrite, 50);
310
- }
311
- if (_safari)
312
- _st(function(){ _silent = false; }, 1);
313
- else
314
- _silent = false;
315
- }
316
- };
317
-
318
- var ID = 'jQueryAddress',
319
- FUNCTION = 'function',
320
- UNDEFINED = 'undefined',
321
- _browser = $.browser,
322
- _version = parseFloat($.browser.version),
323
- _mozilla = _browser.mozilla,
324
- _msie = _browser.msie,
325
- _opera = _browser.opera,
326
- _safari = _browser.safari,
327
- _supported = false,
328
- _t = _getWindow(),
329
- _d = _t.document,
330
- _h = _t.history,
331
- _l = _t.location,
332
- _si = setInterval,
333
- _st = setTimeout,
334
- _dc = decodeURI,
335
- _ec = encodeURI,
336
- _agent = navigator.userAgent,
337
- _iframe,
338
- _form,
339
- _url,
340
- _title = _d.title,
341
- _length = _h.length,
342
- _silent = false,
343
- _loaded = false,
344
- _justset = true,
345
- _juststart = true,
346
- _stack = [],
347
- _listeners = {},
348
- _value = _getHash(),
349
- _api = {},
350
- _opts = {history: true, strict: true};
351
-
352
- if (_msie)
353
- _version = parseFloat(_agent.substr(_agent.indexOf('MSIE') + 4));
354
-
355
- _supported =
356
- (_mozilla && _version >= 1) ||
357
- (_msie && _version >= 6) ||
358
- (_opera && _version >= 9.5) ||
359
- (_safari && _version >= 312);
360
-
361
- if (_supported) {
362
-
363
- for (var i = 1; i < _length; i++)
364
- _stack.push('');
365
-
366
- _stack.push(_getHash());
367
-
368
- if (_msie && _l.hash != _getHash())
369
- _l.hash = '#' + _ieLocal(_getHash(), true);
370
-
371
- if (_opera)
372
- history.navigationMode = 'compatible';
373
-
374
- _searchScript(document);
375
- var _qi = _url.indexOf('?');
376
- if (_url && _qi > -1) {
377
- var param, params = _url.substr(_qi + 1).split('&');
378
- for (var i = 0, p; p = params[i]; i++) {
379
- param = p.split('=');
380
- if (/^(history|strict)$/.test(param[0])) {
381
- _opts[param[0]] = (isNaN(param[1]) ? /^(true|yes)$/i.test(param[1]) : (parseInt(param[1]) != 0));
382
- }
383
- if (/^tracker$/.test(param[0]))
384
- _opts[param[0]] = param[1];
385
- }
386
- }
387
-
388
- $(_load);
389
-
390
- } else if ((!_supported && _l.href.indexOf('#') != -1) ||
391
- (_safari && _version < 418 && _l.href.indexOf('#') != -1 && _l.search != '')){
392
- _d.open();
393
- _d.write('<html><head><meta http-equiv="refresh" content="0;url=' +
394
- _l.href.substr(0, _l.href.indexOf('#')) + '" /></head></html>');
395
- _d.close();
396
- } else {
397
- _track();
398
- }
399
-
400
- $.each(('init,change').split(','), function(i, name){
401
- _api[name] = function(data, fn){
402
- $($.address).bind(name, fn || data, fn && data);
403
- return this;
404
- };
405
- });
406
-
407
- $.each(('baseURL,strict,history,tracker,title,value').split(','), function(i, name){
408
- _api[name] = function(value){
409
- if (typeof value != 'undefined') {
410
- if (_supported)
411
- _setters[name](value);
412
- return $.address;
413
- } else {
414
- return _getters[name]();
415
- }
416
- };
417
- });
418
-
419
- $.each(('path,pathNames,queryString,parameter,parameterNames').split(','), function(i, name){
420
- _api[name] = function(value){
421
- return _getters[name](value);
422
- };
423
- });
424
-
425
- return _api;
426
-
427
- })();
428
-
429
- $.fn.address = function (fn) {
430
- $(this).click(function() {
431
- var value = fn ? fn.call(this) :
432
- /address:/.test($(this).attr('rel')) ? $(this).attr('rel').split('address:')[1].split(' ')[0] :
433
- $(this).attr('href').replace(/^#/, '');
434
- $.address.value(value);
435
- return false;
436
- });
437
- };
438
-
439
- }(jQuery));