sports_db 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -36,7 +36,7 @@ var BaseView = View.extend({
36
36
  return this.params.metric || "/" + this.params.view.capitalize();
37
37
  },
38
38
  setMetric: function(metric) {
39
- $.log('((( setMetric '+ metric +' )))');
39
+ console.log('((( setMetric '+ metric +' )))');
40
40
  return this.params.metric = metric;
41
41
  },
42
42
  getButtons: function() {
@@ -72,7 +72,6 @@ var BaseView = View.extend({
72
72
  } else {
73
73
  // NBA3 only
74
74
  if ($.highResifyLogosForRetinaAndAndroid) {
75
- console.log('adjusting Android');
76
75
  response = $.highResifyLogosForRetinaAndAndroid(response);
77
76
  }
78
77
 
@@ -94,7 +93,7 @@ var BaseView = View.extend({
94
93
  });
95
94
  },
96
95
  onClientCallback: function(name, value) {
97
- $.log('BaseView.onClientCallback({' + name + ': ' + value + '})');
96
+ console.log('BaseView.onClientCallback({' + name + ': ' + value + '})');
98
97
  },
99
98
  // If HTML returned from the server includes a `<div id="html_data" data-params=""></div>` element,
100
99
  // this should contain an object literal (JSON string) with values that will be merged into
@@ -6,7 +6,7 @@ var History = (function() {
6
6
  var currentHash = null;
7
7
 
8
8
  function getMemo() {
9
- return currentHash.toParameters();
9
+ return $.deserialize(currentHash);
10
10
  }
11
11
 
12
12
  function getHash() {
@@ -34,8 +34,8 @@ var History = (function() {
34
34
  });
35
35
 
36
36
  return {
37
- add: function(params) {
38
- window.location.hash = "#" + $.objToQueryStr(params);
37
+ add: function(obj) {
38
+ window.location.hash = "#" + $.serialize(obj);
39
39
  },
40
40
  currentHash: function() {
41
41
  return getHash();
@@ -1,36 +1,18 @@
1
- var console = console || {
2
- log:function(){},
3
- warn:function(){},
4
- error:function(){}
5
- };
6
-
7
- // Convert from device-independent px to device px.
8
- var get_device_px = function(px) {
9
- return (Application.client.ios || navigator.userAgent.match(/Intel Mac/i)) ? px : (window.outerWidth / 320) * px;
10
- };
11
-
12
- var get_viewport_dims = function(){
13
- var dim = {
14
- 'width': (window.innerWidth || document.documentElement.clientWidth || document.body.offsetWidth),
15
- 'height': (window.innerHeight || document.documentElement.clientHeight || document.body.offsetHeight)
16
- };
17
- return dim;
18
- };
19
-
20
- // Take a query string and return and object.
21
- String.prototype.toParameters = function() {
22
- if (this.indexOf('=') == -1) {
23
- return this;
24
- }
25
- var params = {};
26
-
27
- this.split("&").forEach(function(pair) {
28
- var s = pair.split("=");
29
- params[decodeURIComponent(s[0].replace(/\+/g, ' '))] = decodeURIComponent(s[1].replace(/\+/g, ' '));
30
- });
31
- return params;
32
- }
33
-
1
+ var console = console || {log:function(){},warn:function(){},error:function(){}};
2
+
3
+ // Take a string, make an object.
4
+ $.deserialize = function(str) {
5
+ var obj = {};
6
+ str.split("&").forEach(
7
+ function(p) {
8
+ var s = p.split("=");
9
+ obj[s[0].replace(/^\?/, '')] = decodeURIComponent(s[1]);
10
+ }
11
+ );
12
+ return obj;
13
+ };
14
+ // Take a object, make an string (of parameters).
15
+ $.serialize = $.param;
34
16
 
35
17
  // Replace values in a string, e.g. `"foo {boo}".format({boo: 'hoo'}) = 'foo hoo'`.
36
18
  //
@@ -45,130 +27,19 @@ String.prototype.format = function(hash, translate_key) {
45
27
  return s;
46
28
  }
47
29
 
30
+ window.$id = function(id) {
31
+ return document.getElementById(id);
32
+ }
33
+
48
34
  // Capitalize the first character of a string.
49
35
  String.prototype.capitalize = function() {
50
36
  return this.charAt(0).toUpperCase() + this.substr(1).toLowerCase();
51
37
  }
52
38
 
53
- // Sets the object to which `this` refers to.
54
- Function.prototype.bind = function() {
55
- if (arguments.length < 2 && typeof arguments[0] == "undefined") return this;
56
- var __method = this, args = $A(arguments), object = args.shift();
57
- return function() {
58
- return __method.apply(object, args.concat($A(arguments)));
59
- }
60
- }
61
-
62
- // Take a DOM node collection and return an `Array`
63
- function $A(arraylike) {
64
- if (!arraylike) return [];
65
- var length = arraylike.length || 0, results = new Array(length);
66
- while (length--) results[length] = arraylike[length];
67
- return results;
68
- }
69
-
70
- // Takes an object and returns the type.
71
- function type_of(v) {
72
- if (typeof(v) == "object") {
73
- if (v === null) return "null";
74
- if (v.constructor == (new Array).constructor) return "array";
75
- if (v.constructor == (new Date).constructor) return "date";
76
- if (v.constructor == (new RegExp).constructor) return "regex";
77
- return "object";
78
- }
79
- return typeof(v);
80
- }
81
-
82
- function macrojungle(tmpl) {
83
- // This is kind of stupid.
84
- // But at least it's only written once.
85
- var html = $('#tmp').empty().microjungle(tmpl).html();
86
- // If we don't actually want to get any html back (just a string),
87
- // we wrap the string in <tmp>string</tmp> and then remove
88
- // the tags here.
89
- return html.replace(/<(\/){0,1}tmp>/g, '');
90
- }
91
-
92
-
93
- // Convert from device-independent px to device px.
94
- var get_device_px = function(px) {
95
- return (Application.client.ios || navigator.userAgent.match(/Intel Mac/i)) ? px : (window.outerWidth / 320) * px;
96
- };
97
-
98
- var get_viewport_dims = function(){
99
- var dim = {
100
- 'width': (window.innerWidth || document.documentElement.clientWidth || document.body.offsetWidth),
101
- 'height': (window.innerHeight || document.documentElement.clientHeight || document.body.offsetHeight)
102
- };
103
- return dim;
104
- };
105
-
106
-
107
- // A dumb method to flip Plural => Singular.
108
- String.prototype.singularize = function() {
109
- return this.slice(0, -1);
110
- };
111
- String.prototype.contains = function(str){
112
- return (this.indexOf(str) !== -1) ? true : false;
113
- };
114
39
  // zepto/querySelector, understandably, can't deal with periods in the id attr.
115
40
  String.prototype.dotToBar = function() {
116
41
  return this.replace(/\./g,"_");
117
42
  };
118
- String.prototype.barToDot = function() {
119
- return this.replace(/_/g, '.');
120
- };
121
-
122
- // ======================
123
- // = Element Prototypes =
124
- // ======================
125
-
126
- // highlight changes
127
- Element.prototype.hilite = function() {
128
- var el = this;
129
- $(el).addClass('hilite');
130
- // the 3rd param is the context. does not work in IE but we don't care. cstuart 2010-03-18
131
- window.setTimeout(function() {
132
- $(el).removeClass('hilite');
133
- }, 2200, el);
134
- };
135
-
136
- // =====================
137
- // = Number Prototypes =
138
- // =====================
139
-
140
- Number.prototype.isInt = function() {
141
- return this % 1 === 0;
142
- };
143
-
144
- // =====================
145
- // = Utility Functions =
146
- // =====================
147
-
148
- // Takes an object and returns the type.
149
- // var type_of = function(v) {
150
- // if (typeof(v) == "object") {
151
- // if (v === null) return "null";
152
- // if (v.constructor == (new Array).constructor) return "array";
153
- // if (v.constructor == (new Date).constructor) return "date";
154
- // if (v.constructor == (new RegExp).constructor) return "regex";
155
- // if (v.constructor == (new String).constructor) return "string";
156
- // if (v.constructor == (new Number).constructor) return "number";
157
- // return "object";
158
- // }
159
- // return typeof(v);
160
- // };
161
-
162
- $.fixImage = function(elem, src) {
163
- if (!elem.fixed) {
164
- elem.src = src;
165
- } else {
166
- elem.style.visibility = 'hidden';
167
- }
168
- elem.fixed = true;
169
- };
170
-
171
-
172
43
 
173
44
  var macrojungle = function(tmpl) {
174
45
  // This is kind of stupid.
@@ -1,18 +1,21 @@
1
1
  // Behavior for calendar (schedule) navigation.
2
- (function($){
2
+ ;(function($){
3
3
  $.calnav = function(){
4
- $('calnav item')
5
- .unbind()
6
- .bind('click', function(e) {
7
- var el = $(e.target)
8
- if (!el.attr('href')) {
9
- el = el.closest('item');
10
- }
11
- if (!el.attr('href')) return ;
4
+ $('.calnav .item[href]')
5
+ .off('click')
6
+ .on('click', function(e) {
12
7
  Application.showView(
13
- el.attr('href').toParameters()
8
+ $.deserialize(this.getAttribute('href'))
14
9
  );
15
- })
16
- .pressable();
17
- }
10
+ });
11
+
12
+ // CFB2 only
13
+ $('#calnav_dropdown').filterable();
14
+
15
+ // CFB2 only
16
+ var weekLabel = $id('week_label');
17
+ if (weekLabel) {
18
+ weekLabel.innerHTML = $id('calnav_dropdown').options[$id('calnav_dropdown').selectedIndex].text;
19
+ }
20
+ };
18
21
  })(Zepto);
@@ -0,0 +1,42 @@
1
+ ;(function($){
2
+ $.fn.collapsible = function() {
3
+
4
+ var storage = Application.storage();
5
+
6
+ return this.each(function() {
7
+
8
+ if (storage && storage.getItem(this.id) === 'collapsed') {
9
+ $(this)
10
+ .data('is_collapsed', true)
11
+ .find('tbody').hide().end()
12
+ .find('.arrow')
13
+ .animate({ rotate: '90deg' }, 200, 'ease-out');
14
+ }
15
+
16
+ $(this)
17
+ .off('click', 'th')
18
+ .on('click', 'th', function() {
19
+ var $table = $(this).closest('table');
20
+
21
+ if ($table.data('is_collapsed')) {
22
+ if (storage) storage.setItem($table.attr('id'), 'expanded');
23
+
24
+ $table
25
+ .data('is_collapsed', false)
26
+ .find('tbody').show().end()
27
+ .find('.arrow')
28
+ .animate({ rotate: '0' }, 200, 'ease-out');
29
+ } else {
30
+ if (storage) storage.setItem($table.attr('id'), 'collapsed');
31
+
32
+ $table
33
+ .data('is_collapsed', true)
34
+ .find('tbody').hide().end()
35
+ .find('.arrow')
36
+ .animate({ rotate: '90deg' }, 200, 'ease-out');
37
+ }
38
+ });
39
+
40
+ });
41
+ };
42
+ })(Zepto);
@@ -2,7 +2,7 @@
2
2
  // - client
3
3
  // - version (ex: 1.2)
4
4
  (function($){
5
- var q = $.queryStrToObj();
5
+ var q = $.deserialize(window.location.search.substring(1));
6
6
 
7
7
  $.assert(q.client, "`client` param is required.");
8
8
  $.assert(q.version, "`version` param is required.");
@@ -15,5 +15,7 @@
15
15
  }
16
16
  };
17
17
 
18
- $(document.body).on("hashchange", function() { $('#flash').hide() });
18
+ $(document.body).on("hashchange", function() {
19
+ $('#flash').hide()
20
+ });
19
21
  })(Zepto);
@@ -1,57 +1,129 @@
1
- // This was taken from //webclient.
2
-
3
1
  /**
4
- * jQuery plug-in.
2
+ * Tap highlight behavior for elements and elements in lists.
3
+ * Copied from //webclient/... Adjusted slightly.
5
4
  */
6
- (function($) {
5
+
6
+ ;(function($) {
7
7
 
8
8
  /**
9
- * IE9 does not support touch events, only mouse events. We need to adjust appropriately.
10
- * Also, some methods for getting the right target and right coordinates of the event.
9
+ * Set event type based on browser support of touch events.
10
+ * The desktop browsers, and mobile IE do not support touch events.
11
11
  */
12
12
  var touch = ("ontouchstart" in document.body);
13
13
  $.touchEvents = {
14
- isTouch: touch,
15
- start: (touch) ? "touchstart" : "mousedown",
16
- move: (touch) ? "touchmove" : "mousemove",
17
- end: (touch) ? "touchend" : "mouseup mouseout",
18
- endOnly:(touch) ? "touchend touchcancel" : "mouseup",
19
- cancel: (touch) ? "touchend touchcancel touchmove" : "mouseup mousemove mouseout",
14
+ start: (touch) ? "touchstart" : "mousedown",
15
+ move: (touch) ? "touchmove" : "mousemove",
16
+ end: (touch) ? "touchend" : "mouseup mouseout",
17
+ endOnly: (touch) ? "touchend touchcancel" : "mouseup",
18
+ cancel: (touch) ? "touchend touchcancel touchmove" : "mouseup mousemove mouseout",
20
19
  getTarget: function(e) {
21
20
  return touch ?
22
21
  $(e.originalEvent.touches[0].target) :
23
22
  $(e.target);
24
- },
25
- getCoord: function(e) {
26
- // e.originalEvent is necessary because you are using jQuery.
27
- return touch ?
28
- {x: e.originalEvent.touches[0].pageX, y: e.originalEvent.touches[0].pageY} :
29
- {x: e.pageX, y: e.pageY};
30
23
  }
24
+ // ,
25
+ // getCoord: function(e) {
26
+ // // e.originalEvent is necessary because you are using jQuery.
27
+ // return touch ?
28
+ // {x: e.originalEvent.touches[0].pageX, y: e.originalEvent.touches[0].pageY} :
29
+ // {x: e.pageX, y: e.pageY};
30
+ // }
31
31
  };
32
32
 
33
33
  /**
34
- * Make the provided elements "pressable" (give them a press state when touched). If
35
- * the element has a class token of "disabled", then the press effect will not
36
- * be applied.
37
- *
38
- * DO NOT use pressable() to emulate list selection behavior. It won't work when
39
- * you then try and embed an actionable control within the list (e.g. a play button
40
- * for a video, or a favoriting star). Instead, use the List mixin behavior.
34
+ * Highlight a single element
41
35
  *
36
+ * Finds elements with .hhl, adds .hl when active.
42
37
  */
43
- // Modified from //webclient version. Simplified.
44
- $.fn.pressable = function() {
45
- var HL_CLASS = 'hl';
46
- return this
47
- .on($.touchEvents.start, function(e) {
48
- var $this = $(this);
49
- if (!$this.hasClass("disabled")) {
50
- $this.addClass(HL_CLASS);
51
- }
38
+ ;(function() {
39
+ var SELECTOR = '.hhl';
40
+ var CSS_CLASS = 'hl';
41
+ $(document.body)
42
+ .on($.touchEvents.start, SELECTOR, function() {
43
+ $(this).closest(SELECTOR).addClass(CSS_CLASS);
52
44
  })
53
- .on($.touchEvents.cancel, function(e) {
54
- $(this).removeClass(HL_CLASS);
45
+ .on($.touchEvents.cancel, SELECTOR, function() {
46
+ $(this).closest(SELECTOR).removeClass(CSS_CLASS);
55
47
  });
48
+ })();
49
+
50
+ /**
51
+ * Highlight elements in a list.
52
+ */
53
+ $.fn.list_hl = function(selector, func) {
54
+ var $this = this,
55
+ HL = "hl",
56
+ $el = null,
57
+ timer = null;
58
+
59
+ var endEvent = window.location.search.indexOf('client=ios') !== -1 ? $.touchEvents.endOnly : 'click';
60
+
61
+ $(selector).removeClass(HL);
62
+
63
+ $this
64
+ .off($.touchEvents.start, selector)
65
+ .off($.touchEvents.move, selector)
66
+ .off($.touchEvents.endOnly, selector)
67
+ .on($.touchEvents.start, selector, start)
68
+ .on($.touchEvents.move, selector, clear)
69
+ .on(endEvent, selector, end)
70
+
71
+ function hl() {
72
+ $el.addClass(HL);
73
+ }
74
+ function start(e) {
75
+ // Do not proceed if another element is
76
+ // set. Wait until clear() runs.
77
+ if ($el) return;
78
+
79
+ $el = $.touchEvents.getTarget(e).closest(selector);
80
+
81
+ if (Application.client.ios) {
82
+ timer = setTimeout(hl, 90);
83
+ }
84
+ }
85
+ function clear() {
86
+ if (!$el) return;
87
+
88
+ $el.removeClass(HL);
89
+ $el = null;
90
+ if (timer) {
91
+ clearTimeout(timer);
92
+ timer = null;
93
+ }
94
+ }
95
+ // iOS: runs on `touchend` and `touchcancel`
96
+ // Android: runs on `click`
97
+ //
98
+ // If you use "touchend" as the last event for Android
99
+ // it will fire a click event even if you run e.preventDefault()
100
+ // This click event will then likely fire on the next view, and
101
+ // it will inadvertanly navigate or click a tab, etc.
102
+ // By using "click", there are no more events to run, so it
103
+ // can't fuck up.
104
+ // Note this issue is more common, or maybe only present, on
105
+ // Android OS v2.x.
106
+ // And on iOS, if you try to use the click event as the last event
107
+ // nothing happens, and it works and is faster to use touchend.
108
+ function end(e) {
109
+ if (!$el) return;
110
+
111
+ hl();
112
+
113
+ e.preventDefault();
114
+
115
+ if (Application.client.ios) {
116
+ func(e, $el);
117
+ setTimeout(clear, 400);
118
+ }
119
+ if (Application.client.android) {
120
+ setTimeout(function() {
121
+ func(e, $el);
122
+ clear();
123
+ }, 200);
124
+ }
125
+ }
56
126
  };
57
127
  }(Zepto));
128
+
129
+
@@ -23,8 +23,8 @@
23
23
  }
24
24
  function handlers(el) {
25
25
  el
26
- .unbind("click")
27
- .bind("click", function() {
26
+ .off("click")
27
+ .on("click", function() {
28
28
  var new_size = size + parseInt($(this).data('dir'), 10);
29
29
  if (new_size <= MAX && new_size >= MIN) {
30
30
  size = set(new_size, true);
@@ -0,0 +1,41 @@
1
+ // ### Allows a view to retrieve a new view via a `<select>`.
2
+ (function($) {
3
+
4
+ $.extend($.fn, {
5
+ filterable: function() {
6
+ return this.each(function() {
7
+ var $app_wrapper = $('#app_wrapper');
8
+
9
+ $(this)
10
+ .off('click')
11
+ .on('click', function() {
12
+ $app_wrapper.mask({ 'freeze': true });
13
+ })
14
+ .off('change')
15
+ .on('change', function(e) {
16
+ $app_wrapper.mask({ 'unmask': true });
17
+ Application.showView( $.deserialize(e.target.value.substring(1)) );
18
+ })
19
+ .off('blur')
20
+ .on('blur', function() {
21
+ $app_wrapper.mask({ 'unmask': true });
22
+ });
23
+ $.preload(['@2x/filterlist_press@2x.png']);
24
+ });
25
+ }
26
+ });
27
+
28
+ })(Zepto);
29
+
30
+
31
+ // // ### Allows a view to retrieve a new view via a `<select>`.
32
+ // (function($){
33
+ // $.fn.filterable = function() {
34
+ // this
35
+ // .off('change')
36
+ // .on('change', function(e) {
37
+ // // Prevents history from being created
38
+ // Application.showView( $.deserialize(e.target.value.substring(1)) );
39
+ // });
40
+ // };
41
+ // })(Zepto);
@@ -0,0 +1,34 @@
1
+ ;(function($){
2
+
3
+ $.extend($.fn, {
4
+ mask: function(opts) {
5
+
6
+ var params = $.extend({ 'unmask': false, 'freeze': false }, opts);
7
+
8
+ return this.each(function() {
9
+ // This won't work in some versions of Android.
10
+ // http://code.google.com/p/android/issues/detail?id=5491
11
+ // http://code.google.com/p/android/issues/detail?id=4549
12
+
13
+ var freeze = function(e){ e.preventDefault(); };
14
+
15
+ if (params.unmask) {
16
+ if (params.freeze) {
17
+ $(this).find('.mask').off('touchmove', freeze);
18
+ }
19
+ $(this).find('.mask').remove();
20
+
21
+ } else {
22
+ if ($(this).find('.mask').size() === 0) {
23
+ $(this).append('<div class=mask></div>');
24
+
25
+ if (params.freeze) {
26
+ $(this).find('.mask').on('touchmove', freeze);
27
+ }
28
+ }
29
+ }
30
+ });
31
+ }
32
+ });
33
+
34
+ })(Zepto);
@@ -0,0 +1,13 @@
1
+ ;(function($){
2
+ $.preload = function(imgs) {
3
+ $.assert($.isArray(imgs), '$.preload only accepts an array.');
4
+
5
+ imgs.forEach(function(src) {
6
+ if (src.indexOf('http://') === -1) {
7
+ src = Application.params.imageHost + src;
8
+ }
9
+ var image = new Image();
10
+ image.src = src;
11
+ });
12
+ }
13
+ })(Zepto);
@@ -0,0 +1,151 @@
1
+ // Behavior for tabs.
2
+ ;(function($){
3
+ $.fn.tabs = function(custom_opts) {
4
+
5
+ return this.each(function() {
6
+ console.log('++++ initializing tabs');
7
+
8
+ var $tabs = $(this);
9
+ var view = Application.currentView;
10
+
11
+ var defaults = {
12
+ 'tab_selector': '.tab',
13
+ 'tab_content_selector': '.tab_content',
14
+ 'activeTab': '0'
15
+ };
16
+ var opts = $.extend(defaults, custom_opts);
17
+
18
+ var activeTab = opts.activeTab;
19
+ var activeTabFromParams = view.params.activeTab;
20
+ activeTab = activeTabFromParams || activeTab;
21
+
22
+ var reset = function() {
23
+ $tabs.find(opts.tab_content_selector).hide();
24
+ $tabs.find(opts.tab_selector).removeClass('activeTab');
25
+ };
26
+
27
+ var set = function(thing) {
28
+ var $tab, $content;
29
+
30
+ if (typeof thing == "string") {
31
+ $tab = $tabs.find(opts.tab_selector).eq(thing);
32
+ } else {
33
+ $tab = $(thing);
34
+ }
35
+
36
+ view.params.activeTab = $tab.get(0);
37
+
38
+ $content = $($tab.data('for'));
39
+
40
+ $tab.addClass('activeTab');
41
+ $content.show();
42
+
43
+ $(document.body).trigger('tabChange', [$tab]);
44
+
45
+ if (!view.params.pageYOffset) {
46
+ window.scrollTo(0,0);
47
+ }
48
+
49
+ // The user clicks a tab
50
+ if (view.params.hasSentMetrics) {
51
+ Client.notify({
52
+ 'refreshAd': true,
53
+ 'metric': $tab.data('metric')
54
+ });
55
+ // The view is loading and the default
56
+ // tab is being set
57
+ } else {
58
+ // Do not refresh the ad when a
59
+ // Game(s)View auto-updates.
60
+ if (!view.params.isAutoUpdating) {
61
+ Client.notify({
62
+ 'refreshAd': true
63
+ });
64
+
65
+ view.setMetric( $tab.data('metric') );
66
+ } else {
67
+ view.setMetric( $tab.data('metric') + '/AutoUpdate');
68
+ }
69
+
70
+ }
71
+ };
72
+
73
+ reset();
74
+ set(activeTab);
75
+
76
+ $tabs
77
+ .find(opts.tab_selector)
78
+ .off('click')
79
+ .on('click', function() {
80
+ if ($(this).hasClass('activeTab')) return;
81
+
82
+ reset();
83
+ set(this);
84
+ });
85
+ });
86
+ };
87
+
88
+ })(Zepto);
89
+
90
+ //
91
+ // // Behavior for tabs.
92
+ // (function($){
93
+ // function handlers() {
94
+ // $('tab').bind('click', function(e) {
95
+ // reset();
96
+ // set( $(e.target), true );
97
+ // });
98
+ // }
99
+ // function reset() {
100
+ // $('tab_content').hide();
101
+ // $('tab').removeClass('active');
102
+ // }
103
+ // function set(tab, should_send_metric) {
104
+ // $(tab.attr('for')).show();
105
+ // tab.addClass('active');
106
+ // Application.currentView.params.activeTab = tab.attr('for').substring(1);
107
+ // if (should_send_metric) {
108
+ // send_metrics(tab.attr('metric'));
109
+ // }
110
+ // }
111
+ // function send_metrics(metric) {
112
+ // Client.notify({
113
+ // "metric": metric,
114
+ // "title": Application.currentView.getTitle()
115
+ // });
116
+ // }
117
+ // $.tabs = function(idx){
118
+ // // Exit if we don't have reqd html
119
+ // if (($('tabs').size() < 1)) return;
120
+ //
121
+ // var active_tab = Application.currentView.params.activeTab || idx;
122
+ //
123
+ // var el;
124
+ //
125
+ // reset();
126
+ // handlers();
127
+ //
128
+ // if (active_tab) {
129
+ // // Allows you to set the active tab via the url using an integer, ex:
130
+ // //
131
+ // // #view=foo&activeTab=1
132
+ // if (active_tab.length === 1) {
133
+ // el = $( $('tab').get(parseInt(active_tab)) );
134
+ // } else {
135
+ // // Allows you to set the active tab via the url using a string, ex:
136
+ // //
137
+ // // #view=foo&activeTab=tab_content_news
138
+ // el = $('tab[for=\"#'+active_tab+'\"]');
139
+ // }
140
+ // }
141
+ // if (!el || el.size() === 0) {
142
+ // el = $('tab').first();
143
+ // }
144
+ //
145
+ // // Set the metric to the active tab
146
+ // Application.currentView.params.metric = el.attr('metric');
147
+ //
148
+ // // Don't send a metric on initialization, because the view has already sent one.
149
+ // set( el, false );
150
+ // }
151
+ // })(Zepto);
@@ -1,3 +1,3 @@
1
1
  module SportsDb
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sports_db
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-14 00:00:00.000000000 Z
12
+ date: 2013-06-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -77,14 +77,17 @@ files:
77
77
  - app/assets/javascripts/libs/zepto-v1.0rc1/zepto.js
78
78
  - app/assets/javascripts/plugins/assert.js
79
79
  - app/assets/javascripts/plugins/calnav.js
80
+ - app/assets/javascripts/plugins/collapsible.js
80
81
  - app/assets/javascripts/plugins/detect.js
81
- - app/assets/javascripts/plugins/filterable.js
82
82
  - app/assets/javascripts/plugins/flash.js
83
83
  - app/assets/javascripts/plugins/jquery.zumobi-0.2.js
84
84
  - app/assets/javascripts/plugins/loading.js
85
- - app/assets/javascripts/plugins/params.js
86
85
  - app/assets/javascripts/plugins/resizeable.js
86
+ - app/assets/javascripts/plugins/zepto.filterable.js
87
87
  - app/assets/javascripts/plugins/zepto.freeze.js
88
+ - app/assets/javascripts/plugins/zepto.mask.js
89
+ - app/assets/javascripts/plugins/zepto.preload.js
90
+ - app/assets/javascripts/plugins/zepto.tabs.js
88
91
  - app/assets/stylesheets/_base.css.scss
89
92
  - app/assets/stylesheets/_filterable.css.scss
90
93
  - app/assets/stylesheets/_flash.css.scss
@@ -1,12 +0,0 @@
1
- // ### Allows a view to retrieve a new view via a `<select>`.
2
- (function($){
3
- $.fn.filterable = function() {
4
- this
5
- .unbind()
6
- .bind('change', function(e) {
7
- // Prevents history from being created
8
- Application.showView( e.target.value.substring(1).toParameters() );
9
- })
10
- .pressable();
11
- };
12
- })(Zepto);
@@ -1,27 +0,0 @@
1
- ;(function($){
2
- $.strToObj = function(str) {
3
- var obj = {};
4
- str.split("&").forEach(
5
- function(p) {
6
- var s = p.split("=");
7
- obj[s[0].replace(/^\?/, '')] = decodeURIComponent(s[1]);
8
- }
9
- );
10
- return obj;
11
- };
12
- $.objToQueryStr = function(obj) {
13
- var arr = [];
14
- for (var prop in obj) {
15
- if (typeof obj[prop] !== "function") {
16
- arr.push( encodeURIComponent(prop) +"="+ encodeURIComponent(obj[prop]) );
17
- }
18
- }
19
- return arr.join("&")+'';
20
- };
21
- $.queryStrToObj = function() {
22
- return $.strToObj( window.location.search.substring(1) );
23
- };
24
- $.hashStrToObj = function() {
25
- return $.strToObj( window.location.hash.substring(1) );
26
- };
27
- })(Zepto);