phrasing 3.2.0 → 3.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.
Files changed (29) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -1
  3. data/Gemfile.lock +21 -3
  4. data/app/assets/javascripts/phrasing.js.erb +0 -1
  5. data/app/assets/stylesheets/phrasing_edit_mode_bubble.css.scss +6 -0
  6. data/app/helpers/inline_helper.rb +1 -1
  7. data/app/models/phrasing_phrase.rb +16 -7
  8. data/lib/phrasing/implementation.rb +3 -6
  9. data/lib/phrasing/version.rb +1 -1
  10. data/phrasing.gemspec +2 -0
  11. data/spec/dummy/app/views/site/index.html.erb +2 -0
  12. data/spec/dummy/config/locales/en.yml +1 -0
  13. data/spec/dummy/log/test.log +55916 -0
  14. data/spec/features/dummy_spec.rb +23 -9
  15. metadata +33 -47
  16. data/app/assets/javascripts/spin.js +0 -355
  17. data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  18. data/spec/dummy/tmp/cache/assets/test/sprockets/1524a8ae0986ae8836d789001277cb2a +0 -0
  19. data/spec/dummy/tmp/cache/assets/test/sprockets/2577540db9b91552e445c6f71fe549a5 +0 -0
  20. data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  21. data/spec/dummy/tmp/cache/assets/test/sprockets/5e5dccf46135893ba5aa04b2f6dcb9c2 +0 -0
  22. data/spec/dummy/tmp/cache/assets/test/sprockets/61d7673b6096c7fe71678968db1270e8 +0 -0
  23. data/spec/dummy/tmp/cache/assets/test/sprockets/668ce79999306d7c256f7c849c29384a +0 -0
  24. data/spec/dummy/tmp/cache/assets/test/sprockets/7f0eeee40ad7d0ee3deb01c58a3c9604 +0 -0
  25. data/spec/dummy/tmp/cache/assets/test/sprockets/9bb92a90f001d659da46cceb6760405d +0 -0
  26. data/spec/dummy/tmp/cache/assets/test/sprockets/b247b072c0cb3d44ce31c524e74253c9 +0 -0
  27. data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  28. data/spec/dummy/tmp/cache/assets/test/sprockets/e1058f33db77649b2d01d1c4e7a32cbc +0 -0
  29. data/spec/dummy/tmp/cache/assets/test/sprockets/e64cfbce519bf7c3f6b387e85dabc7b7 +0 -0
@@ -1,15 +1,20 @@
1
1
  #encoding: utf-8
2
-
2
+ require 'pry-debugger'
3
3
  require 'spec_helper'
4
4
 
5
- feature "use #t" do
5
+ feature "use #phrase" do
6
6
 
7
7
  it "should see the header phrase" do
8
- FactoryGirl.create(:phrasing_phrase, key: 'site.index.header', value: 'The Header')
9
8
  visit root_path
10
9
  page.should have_content 'The Header'
11
10
  end
12
11
 
12
+ it "should see the header phrase modified if created before visiting" do
13
+ FactoryGirl.create(:phrasing_phrase, key: 'site.index.header', value: 'The Header1')
14
+ visit root_path
15
+ page.should have_content 'The Header1'
16
+ end
17
+
13
18
  it "creates a phrasing_phrase if the yaml has an entry" do
14
19
  PhrasingPhrase.find_by_key('site.index.header').should be_nil
15
20
  visit root_path
@@ -67,11 +72,20 @@ end
67
72
 
68
73
  feature "yaml" do
69
74
 
70
- it "on first visit values should be same as keys" do
71
- visit root_path
72
- PhrasingPhrase.find_by_key('site.index.intro').value.should == 'site.index.intro'
73
- PhrasingPhrase.find_by_key('site.index.header').value.should == 'site.index.header'
74
- PhrasingPhrase.count.should == 2
75
- end
75
+ describe 'on first visit value should be' do
76
+
77
+ it "same as keys" do
78
+ visit root_path
79
+ PhrasingPhrase.find_by_key('site.index.intro').value.should == 'site.index.intro'
80
+ PhrasingPhrase.count.should == 3
81
+ end
82
+
83
+ it "same as translations in the yaml file" do
84
+ visit root_path
85
+ PhrasingPhrase.find_by_key('site.index.header').value.should == 'The Header'
86
+ PhrasingPhrase.find_by_key('site.index.footer').value.should == 'The Footer'
87
+ PhrasingPhrase.count.should == 3
88
+ end
76
89
 
90
+ end
77
91
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phrasing
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
5
- prerelease:
4
+ version: 3.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tomislav Car
@@ -10,102 +9,104 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2014-01-16 00:00:00.000000000 Z
12
+ date: 2014-01-29 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rails
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ! '>='
18
+ - - '>='
21
19
  - !ruby/object:Gem::Version
22
20
  version: 3.1.0
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ! '>='
25
+ - - '>='
29
26
  - !ruby/object:Gem::Version
30
27
  version: 3.1.0
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: railties
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
- - - ! '>='
32
+ - - '>='
37
33
  - !ruby/object:Gem::Version
38
34
  version: '3.1'
39
35
  type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
- - - ! '>='
39
+ - - '>='
45
40
  - !ruby/object:Gem::Version
46
41
  version: '3.1'
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: haml-rails
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
- - - ! '>='
46
+ - - '>='
53
47
  - !ruby/object:Gem::Version
54
48
  version: '0'
55
49
  type: :runtime
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
- - - ! '>='
53
+ - - '>='
61
54
  - !ruby/object:Gem::Version
62
55
  version: '0'
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: jquery-rails
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
- - - ! '>='
60
+ - - '>='
69
61
  - !ruby/object:Gem::Version
70
62
  version: '0'
71
63
  type: :runtime
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
- - - ! '>='
67
+ - - '>='
77
68
  - !ruby/object:Gem::Version
78
69
  version: '0'
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: jquery-cookie-rails
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
- - - ! '>='
74
+ - - '>='
85
75
  - !ruby/object:Gem::Version
86
76
  version: '0'
87
77
  type: :runtime
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
- - - ! '>='
81
+ - - '>='
93
82
  - !ruby/object:Gem::Version
94
83
  version: '0'
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: sass
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
- - - ! '>='
88
+ - - '>='
101
89
  - !ruby/object:Gem::Version
102
90
  version: '0'
103
91
  type: :runtime
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
- - - ! '>='
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: pry-debugger
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - '>='
109
110
  - !ruby/object:Gem::Version
110
111
  version: '0'
111
112
  description: Phrasing!
@@ -130,7 +131,6 @@ files:
130
131
  - app/assets/javascripts/head.js
131
132
  - app/assets/javascripts/phrasing.js.erb
132
133
  - app/assets/javascripts/phrasing_engine.js
133
- - app/assets/javascripts/spin.js
134
134
  - app/assets/stylesheets/phrasing.css.scss
135
135
  - app/assets/stylesheets/phrasing_edit_mode_bubble.css.scss
136
136
  - app/assets/stylesheets/phrasing_engine.css
@@ -201,19 +201,6 @@ files:
201
201
  - spec/dummy/public/500.html
202
202
  - spec/dummy/public/favicon.ico
203
203
  - spec/dummy/script/rails
204
- - spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
205
- - spec/dummy/tmp/cache/assets/test/sprockets/1524a8ae0986ae8836d789001277cb2a
206
- - spec/dummy/tmp/cache/assets/test/sprockets/2577540db9b91552e445c6f71fe549a5
207
- - spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
208
- - spec/dummy/tmp/cache/assets/test/sprockets/5e5dccf46135893ba5aa04b2f6dcb9c2
209
- - spec/dummy/tmp/cache/assets/test/sprockets/61d7673b6096c7fe71678968db1270e8
210
- - spec/dummy/tmp/cache/assets/test/sprockets/668ce79999306d7c256f7c849c29384a
211
- - spec/dummy/tmp/cache/assets/test/sprockets/7f0eeee40ad7d0ee3deb01c58a3c9604
212
- - spec/dummy/tmp/cache/assets/test/sprockets/9bb92a90f001d659da46cceb6760405d
213
- - spec/dummy/tmp/cache/assets/test/sprockets/b247b072c0cb3d44ce31c524e74253c9
214
- - spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
215
- - spec/dummy/tmp/cache/assets/test/sprockets/e1058f33db77649b2d01d1c4e7a32cbc
216
- - spec/dummy/tmp/cache/assets/test/sprockets/e64cfbce519bf7c3f6b387e85dabc7b7
217
204
  - spec/factories/phrasing_phrases.rb
218
205
  - spec/features/dummy_spec.rb
219
206
  - spec/features/phrasing_spec.rb
@@ -223,26 +210,25 @@ files:
223
210
  homepage: http://github.com/infinum/phrasing
224
211
  licenses:
225
212
  - MIT
213
+ metadata: {}
226
214
  post_install_message:
227
215
  rdoc_options: []
228
216
  require_paths:
229
217
  - lib
230
218
  required_ruby_version: !ruby/object:Gem::Requirement
231
- none: false
232
219
  requirements:
233
- - - ! '>='
220
+ - - '>='
234
221
  - !ruby/object:Gem::Version
235
222
  version: '0'
236
223
  required_rubygems_version: !ruby/object:Gem::Requirement
237
- none: false
238
224
  requirements:
239
- - - ! '>='
225
+ - - '>='
240
226
  - !ruby/object:Gem::Version
241
227
  version: '0'
242
228
  requirements: []
243
229
  rubyforge_project:
244
- rubygems_version: 1.8.23
230
+ rubygems_version: 2.1.5
245
231
  signing_key:
246
- specification_version: 3
232
+ specification_version: 4
247
233
  summary: Edit phrases inline for Rails applications!
248
234
  test_files: []
@@ -1,355 +0,0 @@
1
- //fgnass.github.com/spin.js#v1.3.2
2
-
3
- /**
4
- * Copyright (c) 2011-2013 Felix Gnass
5
- * Licensed under the MIT license
6
- */
7
- (function(root, factory) {
8
-
9
- /* CommonJS */
10
- if (typeof exports == 'object') module.exports = factory()
11
-
12
- /* AMD module */
13
- else if (typeof define == 'function' && define.amd) define(factory)
14
-
15
- /* Browser global */
16
- else root.Spinner = factory()
17
- }
18
- (this, function() {
19
- "use strict";
20
-
21
- var prefixes = ['webkit', 'Moz', 'ms', 'O'] /* Vendor prefixes */
22
- , animations = {} /* Animation rules keyed by their name */
23
- , useCssAnimations /* Whether to use CSS animations or setTimeout */
24
-
25
- /**
26
- * Utility function to create elements. If no tag name is given,
27
- * a DIV is created. Optionally properties can be passed.
28
- */
29
- function createEl(tag, prop) {
30
- var el = document.createElement(tag || 'div')
31
- , n
32
-
33
- for(n in prop) el[n] = prop[n]
34
- return el
35
- }
36
-
37
- /**
38
- * Appends children and returns the parent.
39
- */
40
- function ins(parent /* child1, child2, ...*/) {
41
- for (var i=1, n=arguments.length; i<n; i++)
42
- parent.appendChild(arguments[i])
43
-
44
- return parent
45
- }
46
-
47
- /**
48
- * Insert a new stylesheet to hold the @keyframe or VML rules.
49
- */
50
- var sheet = (function() {
51
- var el = createEl('style', {type : 'text/css'})
52
- ins(document.getElementsByTagName('head')[0], el)
53
- return el.sheet || el.styleSheet
54
- }())
55
-
56
- /**
57
- * Creates an opacity keyframe animation rule and returns its name.
58
- * Since most mobile Webkits have timing issues with animation-delay,
59
- * we create separate rules for each line/segment.
60
- */
61
- function addAnimation(alpha, trail, i, lines) {
62
- var name = ['opacity', trail, ~~(alpha*100), i, lines].join('-')
63
- , start = 0.01 + i/lines * 100
64
- , z = Math.max(1 - (1-alpha) / trail * (100-start), alpha)
65
- , prefix = useCssAnimations.substring(0, useCssAnimations.indexOf('Animation')).toLowerCase()
66
- , pre = prefix && '-' + prefix + '-' || ''
67
-
68
- if (!animations[name]) {
69
- sheet.insertRule(
70
- '@' + pre + 'keyframes ' + name + '{' +
71
- '0%{opacity:' + z + '}' +
72
- start + '%{opacity:' + alpha + '}' +
73
- (start+0.01) + '%{opacity:1}' +
74
- (start+trail) % 100 + '%{opacity:' + alpha + '}' +
75
- '100%{opacity:' + z + '}' +
76
- '}', sheet.cssRules.length)
77
-
78
- animations[name] = 1
79
- }
80
-
81
- return name
82
- }
83
-
84
- /**
85
- * Tries various vendor prefixes and returns the first supported property.
86
- */
87
- function vendor(el, prop) {
88
- var s = el.style
89
- , pp
90
- , i
91
-
92
- prop = prop.charAt(0).toUpperCase() + prop.slice(1)
93
- for(i=0; i<prefixes.length; i++) {
94
- pp = prefixes[i]+prop
95
- if(s[pp] !== undefined) return pp
96
- }
97
- if(s[prop] !== undefined) return prop
98
- }
99
-
100
- /**
101
- * Sets multiple style properties at once.
102
- */
103
- function css(el, prop) {
104
- for (var n in prop)
105
- el.style[vendor(el, n)||n] = prop[n]
106
-
107
- return el
108
- }
109
-
110
- /**
111
- * Fills in default values.
112
- */
113
- function merge(obj) {
114
- for (var i=1; i < arguments.length; i++) {
115
- var def = arguments[i]
116
- for (var n in def)
117
- if (obj[n] === undefined) obj[n] = def[n]
118
- }
119
- return obj
120
- }
121
-
122
- /**
123
- * Returns the absolute page-offset of the given element.
124
- */
125
- function pos(el) {
126
- var o = { x:el.offsetLeft, y:el.offsetTop }
127
- while((el = el.offsetParent))
128
- o.x+=el.offsetLeft, o.y+=el.offsetTop
129
-
130
- return o
131
- }
132
-
133
- /**
134
- * Returns the line color from the given string or array.
135
- */
136
- function getColor(color, idx) {
137
- return typeof color == 'string' ? color : color[idx % color.length]
138
- }
139
-
140
- // Built-in defaults
141
-
142
- var defaults = {
143
- lines: 12, // The number of lines to draw
144
- length: 7, // The length of each line
145
- width: 5, // The line thickness
146
- radius: 10, // The radius of the inner circle
147
- rotate: 0, // Rotation offset
148
- corners: 1, // Roundness (0..1)
149
- color: '#000', // #rgb or #rrggbb
150
- direction: 1, // 1: clockwise, -1: counterclockwise
151
- speed: 1, // Rounds per second
152
- trail: 100, // Afterglow percentage
153
- opacity: 1/4, // Opacity of the lines
154
- fps: 20, // Frames per second when using setTimeout()
155
- zIndex: 2e9, // Use a high z-index by default
156
- className: 'spinner', // CSS class to assign to the element
157
- top: 'auto', // center vertically
158
- left: 'auto', // center horizontally
159
- position: 'relative' // element position
160
- }
161
-
162
- /** The constructor */
163
- function Spinner(o) {
164
- if (typeof this == 'undefined') return new Spinner(o)
165
- this.opts = merge(o || {}, Spinner.defaults, defaults)
166
- }
167
-
168
- // Global defaults that override the built-ins:
169
- Spinner.defaults = {}
170
-
171
- merge(Spinner.prototype, {
172
-
173
- /**
174
- * Adds the spinner to the given target element. If this instance is already
175
- * spinning, it is automatically removed from its previous target b calling
176
- * stop() internally.
177
- */
178
- spin: function(target) {
179
- this.stop()
180
-
181
- var self = this
182
- , o = self.opts
183
- , el = self.el = css(createEl(0, {className: o.className}), {position: o.position, width: 0, zIndex: o.zIndex})
184
- , mid = o.radius+o.length+o.width
185
- , ep // element position
186
- , tp // target position
187
-
188
- if (target) {
189
- target.insertBefore(el, target.firstChild||null)
190
- tp = pos(target)
191
- ep = pos(el)
192
- css(el, {
193
- left: (o.left == 'auto' ? tp.x-ep.x + (target.offsetWidth >> 1) : parseInt(o.left, 10) + mid) + 'px',
194
- top: (o.top == 'auto' ? tp.y-ep.y + (target.offsetHeight >> 1) : parseInt(o.top, 10) + mid) + 'px'
195
- })
196
- }
197
-
198
- el.setAttribute('role', 'progressbar')
199
- self.lines(el, self.opts)
200
-
201
- if (!useCssAnimations) {
202
- // No CSS animation support, use setTimeout() instead
203
- var i = 0
204
- , start = (o.lines - 1) * (1 - o.direction) / 2
205
- , alpha
206
- , fps = o.fps
207
- , f = fps/o.speed
208
- , ostep = (1-o.opacity) / (f*o.trail / 100)
209
- , astep = f/o.lines
210
-
211
- ;(function anim() {
212
- i++;
213
- for (var j = 0; j < o.lines; j++) {
214
- alpha = Math.max(1 - (i + (o.lines - j) * astep) % f * ostep, o.opacity)
215
-
216
- self.opacity(el, j * o.direction + start, alpha, o)
217
- }
218
- self.timeout = self.el && setTimeout(anim, ~~(1000/fps))
219
- })()
220
- }
221
- return self
222
- },
223
-
224
- /**
225
- * Stops and removes the Spinner.
226
- */
227
- stop: function() {
228
- var el = this.el
229
- if (el) {
230
- clearTimeout(this.timeout)
231
- if (el.parentNode) el.parentNode.removeChild(el)
232
- this.el = undefined
233
- }
234
- return this
235
- },
236
-
237
- /**
238
- * Internal method that draws the individual lines. Will be overwritten
239
- * in VML fallback mode below.
240
- */
241
- lines: function(el, o) {
242
- var i = 0
243
- , start = (o.lines - 1) * (1 - o.direction) / 2
244
- , seg
245
-
246
- function fill(color, shadow) {
247
- return css(createEl(), {
248
- position: 'absolute',
249
- width: (o.length+o.width) + 'px',
250
- height: o.width + 'px',
251
- background: color,
252
- boxShadow: shadow,
253
- transformOrigin: 'left',
254
- transform: 'rotate(' + ~~(360/o.lines*i+o.rotate) + 'deg) translate(' + o.radius+'px' +',0)',
255
- borderRadius: (o.corners * o.width>>1) + 'px'
256
- })
257
- }
258
-
259
- for (; i < o.lines; i++) {
260
- seg = css(createEl(), {
261
- position: 'absolute',
262
- top: 1+~(o.width/2) + 'px',
263
- transform: o.hwaccel ? 'translate3d(0,0,0)' : '',
264
- opacity: o.opacity,
265
- animation: useCssAnimations && addAnimation(o.opacity, o.trail, start + i * o.direction, o.lines) + ' ' + 1/o.speed + 's linear infinite'
266
- })
267
-
268
- if (o.shadow) ins(seg, css(fill('#000', '0 0 4px ' + '#000'), {top: 2+'px'}))
269
- ins(el, ins(seg, fill(getColor(o.color, i), '0 0 1px rgba(0,0,0,.1)')))
270
- }
271
- return el
272
- },
273
-
274
- /**
275
- * Internal method that adjusts the opacity of a single line.
276
- * Will be overwritten in VML fallback mode below.
277
- */
278
- opacity: function(el, i, val) {
279
- if (i < el.childNodes.length) el.childNodes[i].style.opacity = val
280
- }
281
-
282
- })
283
-
284
-
285
- function initVML() {
286
-
287
- /* Utility function to create a VML tag */
288
- function vml(tag, attr) {
289
- return createEl('<' + tag + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', attr)
290
- }
291
-
292
- // No CSS transforms but VML support, add a CSS rule for VML elements:
293
- sheet.addRule('.spin-vml', 'behavior:url(#default#VML)')
294
-
295
- Spinner.prototype.lines = function(el, o) {
296
- var r = o.length+o.width
297
- , s = 2*r
298
-
299
- function grp() {
300
- return css(
301
- vml('group', {
302
- coordsize: s + ' ' + s,
303
- coordorigin: -r + ' ' + -r
304
- }),
305
- { width: s, height: s }
306
- )
307
- }
308
-
309
- var margin = -(o.width+o.length)*2 + 'px'
310
- , g = css(grp(), {position: 'absolute', top: margin, left: margin})
311
- , i
312
-
313
- function seg(i, dx, filter) {
314
- ins(g,
315
- ins(css(grp(), {rotation: 360 / o.lines * i + 'deg', left: ~~dx}),
316
- ins(css(vml('roundrect', {arcsize: o.corners}), {
317
- width: r,
318
- height: o.width,
319
- left: o.radius,
320
- top: -o.width>>1,
321
- filter: filter
322
- }),
323
- vml('fill', {color: getColor(o.color, i), opacity: o.opacity}),
324
- vml('stroke', {opacity: 0}) // transparent stroke to fix color bleeding upon opacity change
325
- )
326
- )
327
- )
328
- }
329
-
330
- if (o.shadow)
331
- for (i = 1; i <= o.lines; i++)
332
- seg(i, -2, 'progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)')
333
-
334
- for (i = 1; i <= o.lines; i++) seg(i)
335
- return ins(el, g)
336
- }
337
-
338
- Spinner.prototype.opacity = function(el, i, val, o) {
339
- var c = el.firstChild
340
- o = o.shadow && o.lines || 0
341
- if (c && i+o < c.childNodes.length) {
342
- c = c.childNodes[i+o]; c = c && c.firstChild; c = c && c.firstChild
343
- if (c) c.opacity = val
344
- }
345
- }
346
- }
347
-
348
- var probe = css(createEl('group'), {behavior: 'url(#default#VML)'})
349
-
350
- if (!vendor(probe, 'transform') && probe.adj) initVML()
351
- else useCssAnimations = vendor(probe, 'animation')
352
-
353
- return Spinner
354
-
355
- }));