jquery-turbolinks 1.0.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +1 -0
- data/NOTES.md +36 -0
- data/README.md +30 -15
- data/lib/jquery-turbolinks/version.rb +1 -1
- data/package.json +1 -1
- data/spec/jquery.turbolinks_spec.coffee +12 -25
- data/src/jquery.turbolinks.coffee +43 -48
- data/vendor/assets/javascripts/jquery.turbolinks.js +32 -46
- data/vendor/assets/javascripts/jquery.turbolinks.min.js +1 -1
- metadata +13 -17
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZWZlNDExMDMwMjVjZTAzN2EwYTVhMWFjNzIxM2FjNjk0N2JkZDYzNQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZDgzMzg4YmJiMGI2NGE1ODBhNjYzMDRiZjE5MWYzMGRmNmE4M2UwZQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NDg3N2QzYmI2Y2I5MjBmNzEyMjAyNzgyZTg4NGRmN2E2NjU3MGIyYmUwNjk4
|
10
|
+
NzA0ZjQ0ZmQ3ODEwZTcyNWJjYTlhZTkzNWIyNGE1MjA5MDg5MTdkOTgxMjk0
|
11
|
+
NzFlNGQzZGY1MTQ5ZjQ5Y2MyODZhZDA3OTE1Y2RjNGQ0MDBlNzI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MDk0NjQwZDk1NDgzODljMmRhYzJhNDNlMmQ3N2QwNDA0ODM1OWM5OTE5NzYz
|
14
|
+
MGJhZDQ5NzE2NGRhNTAwMzA0ZDQ4YjdiNmViMmQwMzc1MDkwZDkzNmJjNDhh
|
15
|
+
OGQ5MTg0YzYyODVhZDQxMDIyNzU0NzIyNTIzNDZmYzFkMWI4MTg=
|
data/.gitignore
CHANGED
data/NOTES.md
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# Development notes
|
2
|
+
|
3
|
+
Version bumping
|
4
|
+
---------------
|
5
|
+
|
6
|
+
Edit the following files:
|
7
|
+
|
8
|
+
* lib/jquery-turbolinks/version.rb
|
9
|
+
* package.json
|
10
|
+
* src/jquery.turbolinks.coffee
|
11
|
+
|
12
|
+
Updating .js files
|
13
|
+
------------------
|
14
|
+
|
15
|
+
Update the .js files from the source CoffeeScript file using:
|
16
|
+
|
17
|
+
$ rake js:bulid js:uglify
|
18
|
+
|
19
|
+
Testing
|
20
|
+
-------
|
21
|
+
|
22
|
+
Simply use npm/mocha:
|
23
|
+
|
24
|
+
$ npm install
|
25
|
+
$ npm test
|
26
|
+
|
27
|
+
Or:
|
28
|
+
|
29
|
+
$ rake test
|
30
|
+
|
31
|
+
Releasing
|
32
|
+
---------
|
33
|
+
|
34
|
+
Release it into npm/rubygems using:
|
35
|
+
|
36
|
+
$ rake release
|
data/README.md
CHANGED
@@ -12,41 +12,47 @@ Initially sponsored by [Evil Martians](http://evilmartians.com/).
|
|
12
12
|
|
13
13
|
This project is a member of the [OSS Manifesto](http://ossmanifesto.org/).
|
14
14
|
|
15
|
+
## Important
|
16
|
+
|
17
|
+
This readme points to the `master` version (v2.0.0) of jQuery Turbolinks. For
|
18
|
+
older versions, see [v1.0.0rc2 README][oldreadme].
|
19
|
+
|
15
20
|
## Usage
|
16
21
|
|
17
22
|
Gemfile:
|
23
|
+
|
18
24
|
``` js
|
19
25
|
gem 'jquery-turbolinks'
|
20
26
|
```
|
21
27
|
|
22
|
-
JavaScript manifest file:
|
28
|
+
Add it to your JavaScript manifest file, in this order:
|
29
|
+
|
23
30
|
``` js
|
31
|
+
//= require jquery
|
24
32
|
//= require jquery.turbolinks
|
33
|
+
//
|
34
|
+
// ... your other scripts here ...
|
35
|
+
//
|
36
|
+
//= require turbolinks
|
25
37
|
```
|
26
38
|
|
27
39
|
And it just works!
|
28
40
|
|
29
|
-
## Customization
|
30
|
-
|
31
|
-
### $.setReadyEvent
|
41
|
+
## API and Customization
|
32
42
|
|
33
|
-
|
43
|
+
### $.turbo.use
|
34
44
|
|
35
|
-
|
45
|
+
By default, jQuery.Turbolinks is bound to [page:load] and [page:fetch]. To use
|
46
|
+
different events (say, if you're not using Turbolinks), use:
|
36
47
|
|
37
48
|
``` js
|
38
|
-
$.
|
49
|
+
$.turbo.use('pjax:start', 'pjax:end');
|
39
50
|
```
|
40
51
|
|
41
|
-
|
42
|
-
|
43
|
-
By default right after trigger `page:fetch` `$.isReady` is set to false. And after `page:load` is set to true.
|
52
|
+
## $.turbo.isReady
|
44
53
|
|
45
|
-
|
46
|
-
|
47
|
-
``` js
|
48
|
-
$.setReadyEvent('custom_loading_event');
|
49
|
-
```
|
54
|
+
You can check if the page is ready by checking `$.turbo.isReady`, which will be
|
55
|
+
either `true` or `false` depending on whether the page is loading.
|
50
56
|
|
51
57
|
## Troubleshooting
|
52
58
|
|
@@ -72,6 +78,11 @@ $(document).on('click', 'button', function() { ... })
|
|
72
78
|
|
73
79
|
This project uses [Semantic Versioning](http://semver.org/) for release numbering.
|
74
80
|
|
81
|
+
### 2.0.0 (unreleased - master)
|
82
|
+
|
83
|
+
* Rewritten, smaller, with a completely new API. This deprecates the old
|
84
|
+
`$.setFetchEvent` and `$.setReadyEvent` API.
|
85
|
+
|
75
86
|
### 1.0.0 (April 5, 2013)
|
76
87
|
|
77
88
|
* Add uglified version.
|
@@ -112,3 +123,7 @@ Initial idea and code by [@kossnocorp](http://koss.nocorp.me/), with special tha
|
|
112
123
|
## License
|
113
124
|
|
114
125
|
[The MIT License](https://github.com/kossnocorp/jquery.turbolinks/blob/master/LICENSE.md)
|
126
|
+
|
127
|
+
[page:load]: https://github.com/rails/turbolinks/#events
|
128
|
+
[page:fetch]: https://github.com/rails/turbolinks/#events
|
129
|
+
[oldreadme]: https://github.com/kossnocorp/jquery.turbolinks/blob/v1.0.0.rc2/README.md
|
data/package.json
CHANGED
@@ -24,9 +24,7 @@ describe '$ Turbolinks', ->
|
|
24
24
|
describe "DOM isn't ready", ->
|
25
25
|
|
26
26
|
beforeEach ->
|
27
|
-
$.
|
28
|
-
$.setFetchEvent('page:fetch')
|
29
|
-
$.isReady = false
|
27
|
+
$.turbo.isReady = false
|
30
28
|
|
31
29
|
$(callback1 = sinon.spy())
|
32
30
|
$(callback2 = sinon.spy())
|
@@ -41,19 +39,12 @@ describe '$ Turbolinks', ->
|
|
41
39
|
callback1.should.have.been.calledOnce
|
42
40
|
callback2.should.have.been.calledOnce
|
43
41
|
|
44
|
-
|
45
|
-
$(document).trigger('page:load')
|
46
|
-
|
47
|
-
callback1.should.have.been.calledWith($)
|
48
|
-
|
49
|
-
describe '$.setReadyEvent', ->
|
50
|
-
|
42
|
+
describe '$.turbo.use', ->
|
51
43
|
beforeEach ->
|
52
|
-
$.
|
53
|
-
$.setFetchEvent('page:fetch')
|
44
|
+
$.turbo.use('page:load', 'page:fetch')
|
54
45
|
|
55
46
|
it 'should unbind default (page:load) event', ->
|
56
|
-
$.
|
47
|
+
$.turbo.use('other1', 'other2')
|
57
48
|
|
58
49
|
$(document).trigger('page:load')
|
59
50
|
|
@@ -61,8 +52,6 @@ describe '$ Turbolinks', ->
|
|
61
52
|
callback2.should.have.not.been.called
|
62
53
|
|
63
54
|
it 'should bind ready to passed function', ->
|
64
|
-
$.setReadyEvent('page:change')
|
65
|
-
|
66
55
|
$(document)
|
67
56
|
.trigger('page:load')
|
68
57
|
.trigger('page:change')
|
@@ -73,26 +62,24 @@ describe '$ Turbolinks', ->
|
|
73
62
|
describe '$.setFetchEvent', ->
|
74
63
|
|
75
64
|
beforeEach ->
|
76
|
-
$.
|
77
|
-
$.
|
78
|
-
$.isReady = true
|
65
|
+
$.turbo.use('page:load', 'page:fetch')
|
66
|
+
$.turbo.isReady = true
|
79
67
|
|
80
68
|
it 'should unbind default (page:fetch) event', ->
|
81
|
-
$.
|
69
|
+
$.turbo.use('page:load', 'random_event_name')
|
82
70
|
$(document).trigger('page:fetch')
|
83
|
-
$.isReady.should.to.be.true
|
71
|
+
$.turbo.isReady.should.to.be.true
|
84
72
|
|
85
73
|
it 'should bind passed fetch event', ->
|
86
|
-
$.
|
74
|
+
$.turbo.use('page:load', 'page:loading')
|
87
75
|
$(document).trigger('page:loading')
|
88
|
-
$.isReady.should.to.be.false
|
76
|
+
$.turbo.isReady.should.to.be.false
|
89
77
|
|
90
78
|
describe 'DOM is ready', ->
|
91
79
|
|
92
80
|
beforeEach ->
|
93
|
-
$.
|
94
|
-
$.
|
95
|
-
$.isReady = true
|
81
|
+
$.turbo.use('page:load', 'page:fetch')
|
82
|
+
$.turbo.isReady = true
|
96
83
|
|
97
84
|
it 'should call trigger right after add to waiting list', ->
|
98
85
|
$(callback = sinon.spy())
|
@@ -1,53 +1,48 @@
|
|
1
1
|
###
|
2
|
-
|
2
|
+
jQuery.Turbolinks ~ https://github.com/kossnocorp/jquery.turbolinks
|
3
|
+
jQuery plugin for drop-in fix binded events problem caused by Turbolinks
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
The MIT License
|
7
|
-
|
8
|
-
Copyright (c) 2012 Sasha Koss
|
5
|
+
The MIT License
|
6
|
+
Copyright (c) 2012-2013 Sasha Koss & Rico Sta. Cruz
|
9
7
|
###
|
10
8
|
|
11
9
|
$ = window.jQuery or require?('jquery')
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
#
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
#
|
44
|
-
|
45
|
-
|
46
|
-
.
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
$.
|
51
|
-
|
52
|
-
# Bind fetch to Turbolinks page:fetch
|
53
|
-
$.setFetchEvent('page:fetch')
|
10
|
+
$document = $(document)
|
11
|
+
|
12
|
+
$.turbo =
|
13
|
+
version: '2.0.0'
|
14
|
+
|
15
|
+
isReady: false
|
16
|
+
|
17
|
+
# Hook onto the events that Turbolinks triggers.
|
18
|
+
use: (load, fetch) ->
|
19
|
+
$document
|
20
|
+
.off('.turbo')
|
21
|
+
.on("#{load}.turbo", @onLoad)
|
22
|
+
.on("#{fetch}.turbo", @onFetch)
|
23
|
+
|
24
|
+
addCallback: (callback) ->
|
25
|
+
$document.on('turbo:ready', callback)
|
26
|
+
callback($) if $.turbo.isReady
|
27
|
+
|
28
|
+
onLoad: ->
|
29
|
+
$.turbo.isReady = true
|
30
|
+
$document.trigger('turbo:ready')
|
31
|
+
|
32
|
+
onFetch: ->
|
33
|
+
$.turbo.isReady = false
|
34
|
+
|
35
|
+
# Registers jQuery.Turbolinks by monkey-patching jQuery's
|
36
|
+
# `ready` handler. (Internal)
|
37
|
+
#
|
38
|
+
# [1] Trigger the stored `ready` events on first load.
|
39
|
+
# [2] Override `$(function)` and `$(document).ready(function)` by
|
40
|
+
# registering callbacks under a new event called `turbo:ready`.
|
41
|
+
#
|
42
|
+
register: ->
|
43
|
+
$(@onLoad) #[1]
|
44
|
+
$.fn.ready = @addCallback #[2]
|
45
|
+
|
46
|
+
# Use with Turbolinks.
|
47
|
+
$.turbo.register()
|
48
|
+
$.turbo.use('page:load', 'page:fetch')
|
@@ -1,61 +1,47 @@
|
|
1
|
-
// Generated by CoffeeScript 1.
|
2
|
-
|
1
|
+
// Generated by CoffeeScript 1.6.3
|
3
2
|
/*
|
4
|
-
|
5
|
-
|
6
|
-
jQuery plugin for drop-in fix binded events problem caused by Turbolinks
|
3
|
+
jQuery.Turbolinks ~ https://github.com/kossnocorp/jquery.turbolinks
|
4
|
+
jQuery plugin for drop-in fix binded events problem caused by Turbolinks
|
7
5
|
|
8
|
-
|
9
|
-
|
10
|
-
Copyright (c) 2012 Sasha Koss
|
6
|
+
The MIT License
|
7
|
+
Copyright (c) 2012-2013 Sasha Koss & Rico Sta. Cruz
|
11
8
|
*/
|
12
9
|
|
13
10
|
|
14
11
|
(function() {
|
15
|
-
var $,
|
12
|
+
var $, $document;
|
16
13
|
|
17
14
|
$ = window.jQuery || (typeof require === "function" ? require('jquery') : void 0);
|
18
15
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
callbacks.push(callback);
|
44
|
-
if ($.isReady) {
|
45
|
-
return callback($);
|
16
|
+
$document = $(document);
|
17
|
+
|
18
|
+
$.turbo = {
|
19
|
+
version: '2.0.0',
|
20
|
+
isReady: false,
|
21
|
+
use: function(load, fetch) {
|
22
|
+
return $document.off('.turbo').on("" + load + ".turbo", this.onLoad).on("" + fetch + ".turbo", this.onFetch);
|
23
|
+
},
|
24
|
+
addCallback: function(callback) {
|
25
|
+
$document.on('turbo:ready', callback);
|
26
|
+
if ($.turbo.isReady) {
|
27
|
+
return callback($);
|
28
|
+
}
|
29
|
+
},
|
30
|
+
onLoad: function() {
|
31
|
+
$.turbo.isReady = true;
|
32
|
+
return $document.trigger('turbo:ready');
|
33
|
+
},
|
34
|
+
onFetch: function() {
|
35
|
+
return $.turbo.isReady = false;
|
36
|
+
},
|
37
|
+
register: function() {
|
38
|
+
$(this.onLoad);
|
39
|
+
return $.fn.ready = this.addCallback;
|
46
40
|
}
|
47
41
|
};
|
48
42
|
|
49
|
-
$.
|
50
|
-
return $(document).off('.turbolinks-ready').on(event + '.turbolinks-ready', turbolinksReady);
|
51
|
-
};
|
52
|
-
|
53
|
-
$.setFetchEvent = function(event) {
|
54
|
-
return $(document).off('.turbolinks-fetch').on(event + '.turbolinks-fetch', fetch);
|
55
|
-
};
|
56
|
-
|
57
|
-
$.setReadyEvent('page:load');
|
43
|
+
$.turbo.register();
|
58
44
|
|
59
|
-
$.
|
45
|
+
$.turbo.use('page:load', 'page:fetch');
|
60
46
|
|
61
47
|
}).call(this);
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
!function(){var r,o;r=window.jQuery||("function"==typeof require?require("jquery"):void 0),o=r(document),r.turbo={version:"2.0.0",isReady:!1,use:function(r,t){return o.off(".turbo").on(""+r+".turbo",this.onLoad).on(""+t+".turbo",this.onFetch)},addCallback:function(t){return o.on("turbo:ready",t),r.turbo.isReady?t(r):void 0},onLoad:function(){return r.turbo.isReady=!0,o.trigger("turbo:ready")},onFetch:function(){return r.turbo.isReady=!1},register:function(){return r(this.onLoad),r.fn.ready=this.addCallback}},r.turbo.register(),r.turbo.use("page:load","page:fetch")}.call(this);
|
metadata
CHANGED
@@ -1,48 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jquery-turbolinks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 1.0.0
|
4
|
+
version: 2.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Sasha Koss
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-08-21 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
prerelease: false
|
15
|
+
name: railties
|
15
16
|
version_requirements: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
18
|
- - ! '>='
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: 3.1.0
|
20
|
-
none: false
|
21
|
-
name: railties
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
21
|
requirement: !ruby/object:Gem::Requirement
|
25
22
|
requirements:
|
26
23
|
- - ! '>='
|
27
24
|
- !ruby/object:Gem::Version
|
28
25
|
version: 3.1.0
|
29
|
-
|
26
|
+
type: :runtime
|
30
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
prerelease: false
|
29
|
+
name: turbolinks
|
31
30
|
version_requirements: !ruby/object:Gem::Requirement
|
32
31
|
requirements:
|
33
32
|
- - ! '>='
|
34
33
|
- !ruby/object:Gem::Version
|
35
34
|
version: '0'
|
36
|
-
none: false
|
37
|
-
name: turbolinks
|
38
|
-
type: :runtime
|
39
|
-
prerelease: false
|
40
35
|
requirement: !ruby/object:Gem::Requirement
|
41
36
|
requirements:
|
42
37
|
- - ! '>='
|
43
38
|
- !ruby/object:Gem::Version
|
44
39
|
version: '0'
|
45
|
-
|
40
|
+
type: :runtime
|
46
41
|
description: jQuery plugin for drop-in fix binded events problem caused by Turbolinks
|
47
42
|
email: koss@nocorp.me
|
48
43
|
executables: []
|
@@ -55,6 +50,7 @@ files:
|
|
55
50
|
- Gemfile
|
56
51
|
- Guardfile
|
57
52
|
- LICENSE.md
|
53
|
+
- NOTES.md
|
58
54
|
- README.md
|
59
55
|
- Rakefile
|
60
56
|
- jquery-turbolinks.gemspec
|
@@ -69,6 +65,7 @@ files:
|
|
69
65
|
homepage: https://github.com/kossnocorp/jquery.turbolinks
|
70
66
|
licenses:
|
71
67
|
- MIT
|
68
|
+
metadata: {}
|
72
69
|
post_install_message:
|
73
70
|
rdoc_options: []
|
74
71
|
require_paths:
|
@@ -78,18 +75,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
78
75
|
- - ! '>='
|
79
76
|
- !ruby/object:Gem::Version
|
80
77
|
version: '0'
|
81
|
-
none: false
|
82
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
79
|
requirements:
|
84
80
|
- - ! '>='
|
85
81
|
- !ruby/object:Gem::Version
|
86
82
|
version: '0'
|
87
|
-
none: false
|
88
83
|
requirements: []
|
89
84
|
rubyforge_project: jquery-turbolinks
|
90
|
-
rubygems_version:
|
85
|
+
rubygems_version: 2.0.3
|
91
86
|
signing_key:
|
92
|
-
specification_version:
|
87
|
+
specification_version: 4
|
93
88
|
summary: jQuery plugin for drop-in fix binded events problem caused by Turbolinks
|
94
89
|
test_files:
|
95
90
|
- spec/jquery.turbolinks_spec.coffee
|
91
|
+
has_rdoc:
|