unpoly-rails 0.23.0 → 0.24.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of unpoly-rails might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +68 -0
- data/dist/unpoly-bootstrap3.js +1 -1
- data/dist/unpoly-bootstrap3.min.js +1 -1
- data/dist/unpoly.css +18 -8
- data/dist/unpoly.js +498 -265
- data/dist/unpoly.min.css +1 -1
- data/dist/unpoly.min.js +3 -3
- data/lib/assets/javascripts/unpoly-bootstrap3/modal-ext.js.coffee +5 -2
- data/lib/assets/javascripts/unpoly/flow.js.coffee +3 -1
- data/lib/assets/javascripts/unpoly/form.js.coffee +3 -6
- data/lib/assets/javascripts/unpoly/layout.js.coffee +1 -1
- data/lib/assets/javascripts/unpoly/link.js.coffee +4 -2
- data/lib/assets/javascripts/unpoly/log.js.coffee +2 -2
- data/lib/assets/javascripts/unpoly/modal.js.coffee +125 -36
- data/lib/assets/javascripts/unpoly/motion.js.coffee +75 -37
- data/lib/assets/javascripts/unpoly/navigation.js.coffee +38 -26
- data/lib/assets/javascripts/unpoly/proxy.js.coffee +77 -52
- data/lib/assets/javascripts/unpoly/syntax.js.coffee +1 -0
- data/lib/assets/javascripts/unpoly/tooltip.js.coffee +2 -0
- data/lib/assets/javascripts/unpoly/util.js.coffee +138 -46
- data/lib/assets/stylesheets/unpoly/link.css.sass +1 -1
- data/lib/assets/stylesheets/unpoly/modal.css.sass +28 -15
- data/lib/unpoly/rails/version.rb +1 -1
- data/spec_app/Gemfile.lock +7 -7
- data/spec_app/spec/javascripts/helpers/reset_up.js.coffee +2 -0
- data/spec_app/spec/javascripts/helpers/to_contain.js.coffee +5 -0
- data/spec_app/spec/javascripts/up/flow_spec.js.coffee +2 -2
- data/spec_app/spec/javascripts/up/history_spec.js.coffee +6 -4
- data/spec_app/spec/javascripts/up/link_spec.js.coffee +114 -5
- data/spec_app/spec/javascripts/up/modal_spec.js.coffee +28 -18
- data/spec_app/spec/javascripts/up/motion_spec.js.coffee +112 -7
- data/spec_app/spec/javascripts/up/navigation_spec.js.coffee +157 -121
- data/spec_app/spec/javascripts/up/popup_spec.js.coffee +1 -1
- data/spec_app/spec/javascripts/up/proxy_spec.js.coffee +42 -3
- data/spec_app/spec/javascripts/up/syntax_spec.js.coffee +1 -2
- data/spec_app/spec/javascripts/up/util_spec.js.coffee +26 -1
- data/spec_app/vendor/assets/bower_components/jquery/.bower.json +1 -1
- metadata +3 -3
- data/spec_app/spec/javascripts/helpers/set_timer.js.coffee +0 -3
@@ -10,6 +10,20 @@ describe 'up.proxy', ->
|
|
10
10
|
|
11
11
|
describe 'up.ajax', ->
|
12
12
|
|
13
|
+
it 'makes a request with the given URL and params', ->
|
14
|
+
up.ajax('/foo', data: { key: 'value' }, method: 'post')
|
15
|
+
request = @lastRequest()
|
16
|
+
expect(request.url).toEndWith('/foo')
|
17
|
+
expect(request.data()).toEqual(key: ['value'])
|
18
|
+
expect(request.method).toEqual('POST')
|
19
|
+
|
20
|
+
it 'also allows to pass the URL as a { url } option instead', ->
|
21
|
+
up.ajax(url: '/foo', data: { key: 'value' }, method: 'post')
|
22
|
+
request = @lastRequest()
|
23
|
+
expect(request.url).toEndWith('/foo')
|
24
|
+
expect(request.data()).toEqual(key: ['value'])
|
25
|
+
expect(request.method).toEqual('POST')
|
26
|
+
|
13
27
|
it 'caches server responses for 5 minutes', ->
|
14
28
|
responses = []
|
15
29
|
|
@@ -40,6 +54,30 @@ describe 'up.proxy', ->
|
|
40
54
|
|
41
55
|
expect(responses).toEqual(['foo', 'foo', 'bar'])
|
42
56
|
|
57
|
+
it "does not cache responses if config.cacheExpiry is 0", ->
|
58
|
+
up.proxy.config.cacheExpiry = 0
|
59
|
+
up.ajax(url: '/foo')
|
60
|
+
up.ajax(url: '/foo')
|
61
|
+
expect(jasmine.Ajax.requests.count()).toEqual(2)
|
62
|
+
|
63
|
+
it "does not cache responses if config.cacheSize is 0", ->
|
64
|
+
up.proxy.config.cacheSize = 0
|
65
|
+
up.ajax(url: '/foo')
|
66
|
+
up.ajax(url: '/foo')
|
67
|
+
expect(jasmine.Ajax.requests.count()).toEqual(2)
|
68
|
+
|
69
|
+
it 'does not limit the number of cache entries if config.cacheSize is undefined'
|
70
|
+
|
71
|
+
it 'never discards old cache entries if config.cacheExpiry is undefined'
|
72
|
+
|
73
|
+
it 'respects a config.cacheSize setting', ->
|
74
|
+
up.proxy.config.cacheSize = 2
|
75
|
+
up.ajax(url: '/foo')
|
76
|
+
up.ajax(url: '/bar')
|
77
|
+
up.ajax(url: '/baz')
|
78
|
+
up.ajax(url: '/foo')
|
79
|
+
expect(jasmine.Ajax.requests.count()).toEqual(4)
|
80
|
+
|
43
81
|
it "doesn't reuse responses when asked for the same path, but different selectors", ->
|
44
82
|
up.ajax(url: '/path', target: '.a')
|
45
83
|
up.ajax(url: '/path', target: '.b')
|
@@ -101,6 +139,7 @@ describe 'up.proxy', ->
|
|
101
139
|
|
102
140
|
expect(jasmine.Ajax.requests.count()).toEqual(2)
|
103
141
|
|
142
|
+
|
104
143
|
describe 'with config.wrapMethods set', ->
|
105
144
|
|
106
145
|
it 'should be set by default', ->
|
@@ -362,10 +401,10 @@ describe 'up.proxy', ->
|
|
362
401
|
spyOn(up, 'follow')
|
363
402
|
$element = affix('a[href="/foo"][up-preload]')
|
364
403
|
Trigger.mouseover($element)
|
365
|
-
|
404
|
+
u.setTimer 1, =>
|
366
405
|
expect(up.follow.calls.count()).toBe(1)
|
367
|
-
|
406
|
+
u.setTimer 16, =>
|
368
407
|
Trigger.mouseover($element)
|
369
|
-
|
408
|
+
u.setTimer 1, =>
|
370
409
|
expect(up.follow.calls.count()).toBe(2)
|
371
410
|
done()
|
@@ -14,9 +14,8 @@ describe 'up.syntax', ->
|
|
14
14
|
|
15
15
|
expect(observeClass).not.toHaveBeenCalledWith('container')
|
16
16
|
expect(observeClass).toHaveBeenCalledWith('child')
|
17
|
-
|
18
17
|
|
19
|
-
destructor = jasmine.createSpy()
|
18
|
+
destructor = jasmine.createSpy('destructor')
|
20
19
|
up.compiler '.child', ($element) ->
|
21
20
|
destructor
|
22
21
|
|
@@ -2,12 +2,36 @@ describe 'up.util', ->
|
|
2
2
|
|
3
3
|
describe 'Javascript functions', ->
|
4
4
|
|
5
|
-
|
5
|
+
describe 'up.util.setTimer', ->
|
6
|
+
|
7
|
+
it 'calls the given function after waiting the given milliseconds', ->
|
8
|
+
jasmine.clock().install()
|
9
|
+
jasmine.clock().mockDate()
|
10
|
+
callback = jasmine.createSpy()
|
11
|
+
up.util.setTimer(2000, callback)
|
12
|
+
expect(callback).not.toHaveBeenCalled()
|
13
|
+
jasmine.clock().tick(1500)
|
14
|
+
expect(callback).not.toHaveBeenCalled()
|
15
|
+
jasmine.clock().tick(1500)
|
16
|
+
expect(callback).toHaveBeenCalled()
|
17
|
+
|
18
|
+
it 'calls the given function in the current execution frame if the delay is zero', ->
|
19
|
+
callback = jasmine.createSpy()
|
20
|
+
up.util.setTimer(0, callback)
|
21
|
+
expect(callback).toHaveBeenCalled()
|
22
|
+
|
23
|
+
# describe 'up.util.argNames', ->
|
6
24
|
#
|
7
25
|
# it 'returns an array of argument names for the given function', ->
|
8
26
|
# fun = ($element, data) ->
|
9
27
|
# expect(up.util.argNames(fun)).toEqual(['$element', 'data'])
|
10
28
|
|
29
|
+
describe 'up.util.trim', ->
|
30
|
+
|
31
|
+
it 'removes leading and trailing whitespace from the given string', ->
|
32
|
+
string = "\t\n\r abc \r\n\t"
|
33
|
+
expect(up.util.trim(string)).toEqual('abc')
|
34
|
+
|
11
35
|
describe 'up.util.only', ->
|
12
36
|
|
13
37
|
it 'returns a copy of the given object with only the given whitelisted properties', ->
|
@@ -399,3 +423,4 @@ describe 'up.util', ->
|
|
399
423
|
expect(array).toEqual([
|
400
424
|
{ name: 'my=key', value: 'my=value' },
|
401
425
|
])
|
426
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unpoly-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henning Koch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -206,12 +206,12 @@ files:
|
|
206
206
|
- spec_app/spec/javascripts/helpers/reset_path.js.coffee
|
207
207
|
- spec_app/spec/javascripts/helpers/reset_up.js.coffee
|
208
208
|
- spec_app/spec/javascripts/helpers/restore_body_scroll.js.coffee
|
209
|
-
- spec_app/spec/javascripts/helpers/set_timer.js.coffee
|
210
209
|
- spec_app/spec/javascripts/helpers/to_be_around.js.coffee
|
211
210
|
- spec_app/spec/javascripts/helpers/to_be_blank.js.coffee
|
212
211
|
- spec_app/spec/javascripts/helpers/to_be_given.js.coffee
|
213
212
|
- spec_app/spec/javascripts/helpers/to_be_missing.js.coffee
|
214
213
|
- spec_app/spec/javascripts/helpers/to_be_present.js.coffee
|
214
|
+
- spec_app/spec/javascripts/helpers/to_contain.js.coffee
|
215
215
|
- spec_app/spec/javascripts/helpers/to_end_with.js.coffee
|
216
216
|
- spec_app/spec/javascripts/helpers/to_equal_jquery.js.coffee
|
217
217
|
- spec_app/spec/javascripts/helpers/to_have_request_method.js.coffee
|