unpoly-rails 0.23.0 → 0.24.0
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.
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
|