speedo 0.1.7 → 0.1.8
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/app/assets/javascripts/speedo.js +2 -0
- data/app/assets/javascripts/swim.js.coffee +0 -4
- data/app/assets/stylesheets/speedo.css.scss +4 -2
- data/app/views/speedo/home/examples.html.haml +7 -0
- data/lib/speedo/version.rb +1 -1
- data/test/dummy/log/development.log +34 -0
- data/vendor/assets/javascripts/jquery.spin.js +47 -0
- data/vendor/assets/javascripts/spin.js +306 -0
- metadata +22 -20
|
@@ -42,10 +42,6 @@ $ ->
|
|
|
42
42
|
direction: 'down'
|
|
43
43
|
bounce: true
|
|
44
44
|
|
|
45
|
-
$('#fancybox-content .close').live 'click', (e) -> #close_lightbox_from_link(e)
|
|
46
|
-
e.preventDefault()
|
|
47
|
-
$.fancybox.close()
|
|
48
|
-
|
|
49
45
|
$('input[type="date"]').livequery ->
|
|
50
46
|
$(this).datepicker
|
|
51
47
|
numberOfMonths: 2
|
|
@@ -243,9 +243,10 @@ ul.as-selections {
|
|
|
243
243
|
.button-group, .button {
|
|
244
244
|
vertical-align:top;
|
|
245
245
|
}
|
|
246
|
-
|
|
247
|
-
.
|
|
246
|
+
.formtastic input.button {
|
|
247
|
+
padding:0.5em 1em; // Formtastic sets input padding to 0
|
|
248
248
|
}
|
|
249
|
+
|
|
249
250
|
.popup_content {
|
|
250
251
|
display:none;
|
|
251
252
|
position:relative;
|
|
@@ -273,6 +274,7 @@ ul.as-selections {
|
|
|
273
274
|
@include border-radius(1em);
|
|
274
275
|
@include box-shadow(0 0 3px #000);
|
|
275
276
|
font-size:21px;
|
|
277
|
+
font-family:sans-serif;
|
|
276
278
|
line-height:20px;
|
|
277
279
|
text-align:center;
|
|
278
280
|
color:#FFFFFF;
|
|
@@ -69,6 +69,13 @@ results in telling us when this page was loaded:
|
|
|
69
69
|
|
|
70
70
|
= content_for :left_col do
|
|
71
71
|
%h2 Left Col
|
|
72
|
+
%button.button.spin_me Start spinner
|
|
73
|
+
%script
|
|
74
|
+
$('.spin_me').toggle(function() {
|
|
75
|
+
$(this).spin('large','#0090D5');
|
|
76
|
+
}, function() {
|
|
77
|
+
$(this).spin(false);
|
|
78
|
+
});
|
|
72
79
|
|
|
73
80
|
= content_for :right_col do
|
|
74
81
|
%h3 Right Col
|
data/lib/speedo/version.rb
CHANGED
|
@@ -20065,3 +20065,37 @@ Load paths:
|
|
|
20065
20065
|
Rendered /Users/stu/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.4/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.9ms)
|
|
20066
20066
|
Rendered /Users/stu/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.4/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.2ms)
|
|
20067
20067
|
Rendered /Users/stu/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.4/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (4.1ms)
|
|
20068
|
+
|
|
20069
|
+
|
|
20070
|
+
Started GET "/" for 127.0.0.1 at 2012-05-17 10:28:03 -0400
|
|
20071
|
+
|
|
20072
|
+
ActionController::RoutingError (No route matches [GET] "/"):
|
|
20073
|
+
|
|
20074
|
+
|
|
20075
|
+
Rendered /Users/stu/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.4/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.6ms)
|
|
20076
|
+
|
|
20077
|
+
|
|
20078
|
+
Started GET "/speedo" for 127.0.0.1 at 2012-05-17 10:28:11 -0400
|
|
20079
|
+
Processing by Speedo::HomeController#examples as HTML
|
|
20080
|
+
Rendered /Users/stu/Documents/Work/CrankApps/Projects/speedo/app/views/speedo/home/examples.html.haml within layouts/speedo/application (325.8ms)
|
|
20081
|
+
Completed 500 Internal Server Error in 364ms
|
|
20082
|
+
|
|
20083
|
+
ActionView::Template::Error (File to import not found or unreadable: speedo.
|
|
20084
|
+
Load paths:
|
|
20085
|
+
/Users/stu/Documents/Work/CrankApps/Projects/speedo/test/dummy
|
|
20086
|
+
/Users/stu/.rvm/gems/ruby-1.9.2-p290/gems/bourbon-1.4.0/app/assets/stylesheets
|
|
20087
|
+
/Users/stu/Documents/Work/CrankApps/Projects/speedo/test/dummy/app/assets/stylesheets
|
|
20088
|
+
/Users/stu/Documents/Work/CrankApps/Projects/speedo/test/dummy/vendor/assets/stylesheets
|
|
20089
|
+
(in /Users/stu/Documents/Work/CrankApps/Projects/speedo/app/assets/stylesheets/application.css.scss)):
|
|
20090
|
+
15:
|
|
20091
|
+
16: = javascript_include_tag 'modernizr.min.js'
|
|
20092
|
+
17: = javascript_include_tag 'respond.js'
|
|
20093
|
+
18: = stylesheet_link_tag :application
|
|
20094
|
+
19: = javascript_include_tag :application
|
|
20095
|
+
20: = yield :head
|
|
20096
|
+
21:
|
|
20097
|
+
|
|
20098
|
+
|
|
20099
|
+
Rendered /Users/stu/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.4/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.9ms)
|
|
20100
|
+
Rendered /Users/stu/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.4/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.7ms)
|
|
20101
|
+
Rendered /Users/stu/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.4/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (4.5ms)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
You can now create a spinner using any of the variants below:
|
|
4
|
+
|
|
5
|
+
$("#el").spin(); // Produces default Spinner using the text color of #el.
|
|
6
|
+
$("#el").spin("small"); // Produces a 'small' Spinner using the text color of #el.
|
|
7
|
+
$("#el").spin("large", "white"); // Produces a 'large' Spinner in white (or any valid CSS color).
|
|
8
|
+
$("#el").spin({ ... }); // Produces a Spinner using your custom settings.
|
|
9
|
+
|
|
10
|
+
$("#el").spin(false); // Kills the spinner.
|
|
11
|
+
|
|
12
|
+
*/
|
|
13
|
+
(function($) {
|
|
14
|
+
$.fn.spin = function(opts, color) {
|
|
15
|
+
var presets = {
|
|
16
|
+
"tiny": { lines: 8, length: 2, width: 2, radius: 3 },
|
|
17
|
+
"small": { lines: 8, length: 4, width: 3, radius: 5 },
|
|
18
|
+
"large": { lines: 10, length: 8, width: 4, radius: 8 }
|
|
19
|
+
};
|
|
20
|
+
if (Spinner) {
|
|
21
|
+
return this.each(function() {
|
|
22
|
+
var $this = $(this),
|
|
23
|
+
data = $this.data();
|
|
24
|
+
|
|
25
|
+
if (data.spinner) {
|
|
26
|
+
data.spinner.stop();
|
|
27
|
+
delete data.spinner;
|
|
28
|
+
}
|
|
29
|
+
if (opts !== false) {
|
|
30
|
+
if (typeof opts === "string") {
|
|
31
|
+
if (opts in presets) {
|
|
32
|
+
opts = presets[opts];
|
|
33
|
+
} else {
|
|
34
|
+
opts = {};
|
|
35
|
+
}
|
|
36
|
+
if (color) {
|
|
37
|
+
opts.color = color;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
data.spinner = new Spinner($.extend({color: $this.css('color')}, opts)).spin(this);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
} else {
|
|
44
|
+
throw "Spinner class not available.";
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
})(jQuery);
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
//fgnass.github.com/spin.js#v1.2.5
|
|
2
|
+
(function(window, document, undefined) {
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Copyright (c) 2011 Felix Gnass [fgnass at neteye dot de]
|
|
6
|
+
* Licensed under the MIT license
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
var prefixes = ['webkit', 'Moz', 'ms', 'O']; /* Vendor prefixes */
|
|
10
|
+
var animations = {}; /* Animation rules keyed by their name */
|
|
11
|
+
var useCssAnimations;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Utility function to create elements. If no tag name is given,
|
|
15
|
+
* a DIV is created. Optionally properties can be passed.
|
|
16
|
+
*/
|
|
17
|
+
function createEl(tag, prop) {
|
|
18
|
+
var el = document.createElement(tag || 'div');
|
|
19
|
+
var n;
|
|
20
|
+
|
|
21
|
+
for(n in prop) {
|
|
22
|
+
el[n] = prop[n];
|
|
23
|
+
}
|
|
24
|
+
return el;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Appends children and returns the parent.
|
|
29
|
+
*/
|
|
30
|
+
function ins(parent /* child1, child2, ...*/) {
|
|
31
|
+
for (var i=1, n=arguments.length; i<n; i++) {
|
|
32
|
+
parent.appendChild(arguments[i]);
|
|
33
|
+
}
|
|
34
|
+
return parent;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Insert a new stylesheet to hold the @keyframe or VML rules.
|
|
39
|
+
*/
|
|
40
|
+
var sheet = function() {
|
|
41
|
+
var el = createEl('style');
|
|
42
|
+
ins(document.getElementsByTagName('head')[0], el);
|
|
43
|
+
return el.sheet || el.styleSheet;
|
|
44
|
+
}();
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Creates an opacity keyframe animation rule and returns its name.
|
|
48
|
+
* Since most mobile Webkits have timing issues with animation-delay,
|
|
49
|
+
* we create separate rules for each line/segment.
|
|
50
|
+
*/
|
|
51
|
+
function addAnimation(alpha, trail, i, lines) {
|
|
52
|
+
var name = ['opacity', trail, ~~(alpha*100), i, lines].join('-');
|
|
53
|
+
var start = 0.01 + i/lines*100;
|
|
54
|
+
var z = Math.max(1-(1-alpha)/trail*(100-start) , alpha);
|
|
55
|
+
var prefix = useCssAnimations.substring(0, useCssAnimations.indexOf('Animation')).toLowerCase();
|
|
56
|
+
var pre = prefix && '-'+prefix+'-' || '';
|
|
57
|
+
|
|
58
|
+
if (!animations[name]) {
|
|
59
|
+
sheet.insertRule(
|
|
60
|
+
'@' + pre + 'keyframes ' + name + '{' +
|
|
61
|
+
'0%{opacity:'+z+'}' +
|
|
62
|
+
start + '%{opacity:'+ alpha + '}' +
|
|
63
|
+
(start+0.01) + '%{opacity:1}' +
|
|
64
|
+
(start+trail)%100 + '%{opacity:'+ alpha + '}' +
|
|
65
|
+
'100%{opacity:'+ z + '}' +
|
|
66
|
+
'}', 0);
|
|
67
|
+
animations[name] = 1;
|
|
68
|
+
}
|
|
69
|
+
return name;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Tries various vendor prefixes and returns the first supported property.
|
|
74
|
+
**/
|
|
75
|
+
function vendor(el, prop) {
|
|
76
|
+
var s = el.style;
|
|
77
|
+
var pp;
|
|
78
|
+
var i;
|
|
79
|
+
|
|
80
|
+
if(s[prop] !== undefined) return prop;
|
|
81
|
+
prop = prop.charAt(0).toUpperCase() + prop.slice(1);
|
|
82
|
+
for(i=0; i<prefixes.length; i++) {
|
|
83
|
+
pp = prefixes[i]+prop;
|
|
84
|
+
if(s[pp] !== undefined) return pp;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Sets multiple style properties at once.
|
|
90
|
+
*/
|
|
91
|
+
function css(el, prop) {
|
|
92
|
+
for (var n in prop) {
|
|
93
|
+
el.style[vendor(el, n)||n] = prop[n];
|
|
94
|
+
}
|
|
95
|
+
return el;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Fills in default values.
|
|
100
|
+
*/
|
|
101
|
+
function merge(obj) {
|
|
102
|
+
for (var i=1; i < arguments.length; i++) {
|
|
103
|
+
var def = arguments[i];
|
|
104
|
+
for (var n in def) {
|
|
105
|
+
if (obj[n] === undefined) obj[n] = def[n];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return obj;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Returns the absolute page-offset of the given element.
|
|
113
|
+
*/
|
|
114
|
+
function pos(el) {
|
|
115
|
+
var o = {x:el.offsetLeft, y:el.offsetTop};
|
|
116
|
+
while((el = el.offsetParent)) {
|
|
117
|
+
o.x+=el.offsetLeft;
|
|
118
|
+
o.y+=el.offsetTop;
|
|
119
|
+
}
|
|
120
|
+
return o;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
var defaults = {
|
|
124
|
+
lines: 12, // The number of lines to draw
|
|
125
|
+
length: 7, // The length of each line
|
|
126
|
+
width: 5, // The line thickness
|
|
127
|
+
radius: 10, // The radius of the inner circle
|
|
128
|
+
rotate: 0, // rotation offset
|
|
129
|
+
color: '#000', // #rgb or #rrggbb
|
|
130
|
+
speed: 1, // Rounds per second
|
|
131
|
+
trail: 100, // Afterglow percentage
|
|
132
|
+
opacity: 1/4, // Opacity of the lines
|
|
133
|
+
fps: 20, // Frames per second when using setTimeout()
|
|
134
|
+
zIndex: 2e9, // Use a high z-index by default
|
|
135
|
+
className: 'spinner', // CSS class to assign to the element
|
|
136
|
+
top: 'auto', // center vertically
|
|
137
|
+
left: 'auto' // center horizontally
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
/** The constructor */
|
|
141
|
+
var Spinner = function Spinner(o) {
|
|
142
|
+
if (!this.spin) return new Spinner(o);
|
|
143
|
+
this.opts = merge(o || {}, Spinner.defaults, defaults);
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
Spinner.defaults = {};
|
|
147
|
+
merge(Spinner.prototype, {
|
|
148
|
+
spin: function(target) {
|
|
149
|
+
this.stop();
|
|
150
|
+
var self = this;
|
|
151
|
+
var o = self.opts;
|
|
152
|
+
var el = self.el = css(createEl(0, {className: o.className}), {position: 'relative', zIndex: o.zIndex});
|
|
153
|
+
var mid = o.radius+o.length+o.width;
|
|
154
|
+
var ep; // element position
|
|
155
|
+
var tp; // target position
|
|
156
|
+
|
|
157
|
+
if (target) {
|
|
158
|
+
target.insertBefore(el, target.firstChild||null);
|
|
159
|
+
tp = pos(target);
|
|
160
|
+
ep = pos(el);
|
|
161
|
+
css(el, {
|
|
162
|
+
left: (o.left == 'auto' ? tp.x-ep.x + (target.offsetWidth >> 1) : o.left+mid) + 'px',
|
|
163
|
+
top: (o.top == 'auto' ? tp.y-ep.y + (target.offsetHeight >> 1) : o.top+mid) + 'px'
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
el.setAttribute('aria-role', 'progressbar');
|
|
168
|
+
self.lines(el, self.opts);
|
|
169
|
+
|
|
170
|
+
if (!useCssAnimations) {
|
|
171
|
+
// No CSS animation support, use setTimeout() instead
|
|
172
|
+
var i = 0;
|
|
173
|
+
var fps = o.fps;
|
|
174
|
+
var f = fps/o.speed;
|
|
175
|
+
var ostep = (1-o.opacity)/(f*o.trail / 100);
|
|
176
|
+
var astep = f/o.lines;
|
|
177
|
+
|
|
178
|
+
!function anim() {
|
|
179
|
+
i++;
|
|
180
|
+
for (var s=o.lines; s; s--) {
|
|
181
|
+
var alpha = Math.max(1-(i+s*astep)%f * ostep, o.opacity);
|
|
182
|
+
self.opacity(el, o.lines-s, alpha, o);
|
|
183
|
+
}
|
|
184
|
+
self.timeout = self.el && setTimeout(anim, ~~(1000/fps));
|
|
185
|
+
}();
|
|
186
|
+
}
|
|
187
|
+
return self;
|
|
188
|
+
},
|
|
189
|
+
stop: function() {
|
|
190
|
+
var el = this.el;
|
|
191
|
+
if (el) {
|
|
192
|
+
clearTimeout(this.timeout);
|
|
193
|
+
if (el.parentNode) el.parentNode.removeChild(el);
|
|
194
|
+
this.el = undefined;
|
|
195
|
+
}
|
|
196
|
+
return this;
|
|
197
|
+
},
|
|
198
|
+
lines: function(el, o) {
|
|
199
|
+
var i = 0;
|
|
200
|
+
var seg;
|
|
201
|
+
|
|
202
|
+
function fill(color, shadow) {
|
|
203
|
+
return css(createEl(), {
|
|
204
|
+
position: 'absolute',
|
|
205
|
+
width: (o.length+o.width) + 'px',
|
|
206
|
+
height: o.width + 'px',
|
|
207
|
+
background: color,
|
|
208
|
+
boxShadow: shadow,
|
|
209
|
+
transformOrigin: 'left',
|
|
210
|
+
transform: 'rotate(' + ~~(360/o.lines*i+o.rotate) + 'deg) translate(' + o.radius+'px' +',0)',
|
|
211
|
+
borderRadius: (o.width>>1) + 'px'
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
for (; i < o.lines; i++) {
|
|
215
|
+
seg = css(createEl(), {
|
|
216
|
+
position: 'absolute',
|
|
217
|
+
top: 1+~(o.width/2) + 'px',
|
|
218
|
+
transform: o.hwaccel ? 'translate3d(0,0,0)' : '',
|
|
219
|
+
opacity: o.opacity,
|
|
220
|
+
animation: useCssAnimations && addAnimation(o.opacity, o.trail, i, o.lines) + ' ' + 1/o.speed + 's linear infinite'
|
|
221
|
+
});
|
|
222
|
+
if (o.shadow) ins(seg, css(fill('#000', '0 0 4px ' + '#000'), {top: 2+'px'}));
|
|
223
|
+
ins(el, ins(seg, fill(o.color, '0 0 1px rgba(0,0,0,.1)')));
|
|
224
|
+
}
|
|
225
|
+
return el;
|
|
226
|
+
},
|
|
227
|
+
opacity: function(el, i, val) {
|
|
228
|
+
if (i < el.childNodes.length) el.childNodes[i].style.opacity = val;
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
/////////////////////////////////////////////////////////////////////////
|
|
233
|
+
// VML rendering for IE
|
|
234
|
+
/////////////////////////////////////////////////////////////////////////
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Check and init VML support
|
|
238
|
+
*/
|
|
239
|
+
!function() {
|
|
240
|
+
|
|
241
|
+
function vml(tag, attr) {
|
|
242
|
+
return createEl('<' + tag + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', attr);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
var s = css(createEl('group'), {behavior: 'url(#default#VML)'});
|
|
246
|
+
|
|
247
|
+
if (!vendor(s, 'transform') && s.adj) {
|
|
248
|
+
|
|
249
|
+
// VML support detected. Insert CSS rule ...
|
|
250
|
+
sheet.addRule('.spin-vml', 'behavior:url(#default#VML)');
|
|
251
|
+
|
|
252
|
+
Spinner.prototype.lines = function(el, o) {
|
|
253
|
+
var r = o.length+o.width;
|
|
254
|
+
var s = 2*r;
|
|
255
|
+
|
|
256
|
+
function grp() {
|
|
257
|
+
return css(vml('group', {coordsize: s +' '+s, coordorigin: -r +' '+-r}), {width: s, height: s});
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
var margin = -(o.width+o.length)*2+'px';
|
|
261
|
+
var g = css(grp(), {position: 'absolute', top: margin, left: margin});
|
|
262
|
+
|
|
263
|
+
var i;
|
|
264
|
+
|
|
265
|
+
function seg(i, dx, filter) {
|
|
266
|
+
ins(g,
|
|
267
|
+
ins(css(grp(), {rotation: 360 / o.lines * i + 'deg', left: ~~dx}),
|
|
268
|
+
ins(css(vml('roundrect', {arcsize: 1}), {
|
|
269
|
+
width: r,
|
|
270
|
+
height: o.width,
|
|
271
|
+
left: o.radius,
|
|
272
|
+
top: -o.width>>1,
|
|
273
|
+
filter: filter
|
|
274
|
+
}),
|
|
275
|
+
vml('fill', {color: o.color, opacity: o.opacity}),
|
|
276
|
+
vml('stroke', {opacity: 0}) // transparent stroke to fix color bleeding upon opacity change
|
|
277
|
+
)
|
|
278
|
+
)
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
if (o.shadow) {
|
|
283
|
+
for (i = 1; i <= o.lines; i++) {
|
|
284
|
+
seg(i, -2, 'progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)');
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
for (i = 1; i <= o.lines; i++) seg(i);
|
|
288
|
+
return ins(el, g);
|
|
289
|
+
};
|
|
290
|
+
Spinner.prototype.opacity = function(el, i, val, o) {
|
|
291
|
+
var c = el.firstChild;
|
|
292
|
+
o = o.shadow && o.lines || 0;
|
|
293
|
+
if (c && i+o < c.childNodes.length) {
|
|
294
|
+
c = c.childNodes[i+o]; c = c && c.firstChild; c = c && c.firstChild;
|
|
295
|
+
if (c) c.opacity = val;
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
useCssAnimations = vendor(s, 'animation');
|
|
301
|
+
}
|
|
302
|
+
}();
|
|
303
|
+
|
|
304
|
+
window.Spinner = Spinner;
|
|
305
|
+
|
|
306
|
+
})(window, document);
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: speedo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.8
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -10,11 +10,11 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2012-05-
|
|
13
|
+
date: 2012-05-17 00:00:00.000000000Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: rails
|
|
17
|
-
requirement: &
|
|
17
|
+
requirement: &2167179900 !ruby/object:Gem::Requirement
|
|
18
18
|
none: false
|
|
19
19
|
requirements:
|
|
20
20
|
- - ! '>='
|
|
@@ -22,10 +22,10 @@ dependencies:
|
|
|
22
22
|
version: '3.1'
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
|
-
version_requirements: *
|
|
25
|
+
version_requirements: *2167179900
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: haml
|
|
28
|
-
requirement: &
|
|
28
|
+
requirement: &2167179440 !ruby/object:Gem::Requirement
|
|
29
29
|
none: false
|
|
30
30
|
requirements:
|
|
31
31
|
- - ! '>='
|
|
@@ -33,10 +33,10 @@ dependencies:
|
|
|
33
33
|
version: '0'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
|
-
version_requirements: *
|
|
36
|
+
version_requirements: *2167179440
|
|
37
37
|
- !ruby/object:Gem::Dependency
|
|
38
38
|
name: coffee-script
|
|
39
|
-
requirement: &
|
|
39
|
+
requirement: &2167178880 !ruby/object:Gem::Requirement
|
|
40
40
|
none: false
|
|
41
41
|
requirements:
|
|
42
42
|
- - ! '>='
|
|
@@ -44,10 +44,10 @@ dependencies:
|
|
|
44
44
|
version: '0'
|
|
45
45
|
type: :runtime
|
|
46
46
|
prerelease: false
|
|
47
|
-
version_requirements: *
|
|
47
|
+
version_requirements: *2167178880
|
|
48
48
|
- !ruby/object:Gem::Dependency
|
|
49
49
|
name: sass-rails
|
|
50
|
-
requirement: &
|
|
50
|
+
requirement: &2167178160 !ruby/object:Gem::Requirement
|
|
51
51
|
none: false
|
|
52
52
|
requirements:
|
|
53
53
|
- - ! '>='
|
|
@@ -55,10 +55,10 @@ dependencies:
|
|
|
55
55
|
version: '0'
|
|
56
56
|
type: :runtime
|
|
57
57
|
prerelease: false
|
|
58
|
-
version_requirements: *
|
|
58
|
+
version_requirements: *2167178160
|
|
59
59
|
- !ruby/object:Gem::Dependency
|
|
60
60
|
name: bourbon
|
|
61
|
-
requirement: &
|
|
61
|
+
requirement: &2167177560 !ruby/object:Gem::Requirement
|
|
62
62
|
none: false
|
|
63
63
|
requirements:
|
|
64
64
|
- - ! '>='
|
|
@@ -66,10 +66,10 @@ dependencies:
|
|
|
66
66
|
version: '0'
|
|
67
67
|
type: :runtime
|
|
68
68
|
prerelease: false
|
|
69
|
-
version_requirements: *
|
|
69
|
+
version_requirements: *2167177560
|
|
70
70
|
- !ruby/object:Gem::Dependency
|
|
71
71
|
name: formtastic
|
|
72
|
-
requirement: &
|
|
72
|
+
requirement: &2167176540 !ruby/object:Gem::Requirement
|
|
73
73
|
none: false
|
|
74
74
|
requirements:
|
|
75
75
|
- - ! '>='
|
|
@@ -77,10 +77,10 @@ dependencies:
|
|
|
77
77
|
version: 2.1.0.rc
|
|
78
78
|
type: :runtime
|
|
79
79
|
prerelease: false
|
|
80
|
-
version_requirements: *
|
|
80
|
+
version_requirements: *2167176540
|
|
81
81
|
- !ruby/object:Gem::Dependency
|
|
82
82
|
name: jquery-rails
|
|
83
|
-
requirement: &
|
|
83
|
+
requirement: &2167176080 !ruby/object:Gem::Requirement
|
|
84
84
|
none: false
|
|
85
85
|
requirements:
|
|
86
86
|
- - ! '>='
|
|
@@ -88,10 +88,10 @@ dependencies:
|
|
|
88
88
|
version: '0'
|
|
89
89
|
type: :runtime
|
|
90
90
|
prerelease: false
|
|
91
|
-
version_requirements: *
|
|
91
|
+
version_requirements: *2167176080
|
|
92
92
|
- !ruby/object:Gem::Dependency
|
|
93
93
|
name: sqlite3
|
|
94
|
-
requirement: &
|
|
94
|
+
requirement: &2167175500 !ruby/object:Gem::Requirement
|
|
95
95
|
none: false
|
|
96
96
|
requirements:
|
|
97
97
|
- - ! '>='
|
|
@@ -99,7 +99,7 @@ dependencies:
|
|
|
99
99
|
version: '0'
|
|
100
100
|
type: :development
|
|
101
101
|
prerelease: false
|
|
102
|
-
version_requirements: *
|
|
102
|
+
version_requirements: *2167175500
|
|
103
103
|
description: This is a layout gem intended as a backdrop for developing rails applications
|
|
104
104
|
quickly. Its intention is to speed initial development, removing the need for any
|
|
105
105
|
intensive front-end development until the app is functional.
|
|
@@ -135,11 +135,13 @@ files:
|
|
|
135
135
|
- vendor/assets/javascripts/jquery.livequery.js
|
|
136
136
|
- vendor/assets/javascripts/jquery.mousewheel-3.0.4.pack.js
|
|
137
137
|
- vendor/assets/javascripts/jquery.placeholder.min.js
|
|
138
|
+
- vendor/assets/javascripts/jquery.spin.js
|
|
138
139
|
- vendor/assets/javascripts/jquery.timeago.js
|
|
139
140
|
- vendor/assets/javascripts/jquery.tools.min.js
|
|
140
141
|
- vendor/assets/javascripts/jquery.uniform.js
|
|
141
142
|
- vendor/assets/javascripts/modernizr.min.js
|
|
142
143
|
- vendor/assets/javascripts/respond.js
|
|
144
|
+
- vendor/assets/javascripts/spin.js
|
|
143
145
|
- vendor/assets/stylesheets/autoSuggest.css
|
|
144
146
|
- vendor/assets/stylesheets/chosen-sprite.png
|
|
145
147
|
- vendor/assets/stylesheets/chosen.css
|
|
@@ -324,7 +326,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
324
326
|
version: '0'
|
|
325
327
|
segments:
|
|
326
328
|
- 0
|
|
327
|
-
hash:
|
|
329
|
+
hash: 4017462543207108980
|
|
328
330
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
329
331
|
none: false
|
|
330
332
|
requirements:
|
|
@@ -333,7 +335,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
333
335
|
version: '0'
|
|
334
336
|
segments:
|
|
335
337
|
- 0
|
|
336
|
-
hash:
|
|
338
|
+
hash: 4017462543207108980
|
|
337
339
|
requirements: []
|
|
338
340
|
rubyforge_project:
|
|
339
341
|
rubygems_version: 1.8.10
|