jquery-turbolinks 1.0.0.rc1 → 1.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,32 @@
1
+ # How to contribute
2
+
3
+ ## Run tests
4
+
5
+ ``` sh
6
+ # Bundle gems
7
+ bundle
8
+
9
+ # Install npm packages
10
+ npm install
11
+
12
+ # Run tests
13
+ rake test
14
+
15
+ # ... or run auto tests
16
+ bundle exec guard
17
+ ```
18
+
19
+ ## Sending pull-request
20
+
21
+ 1. Fork
22
+ 2. Run the tests
23
+ 3. Add test for your change
24
+ 4. Make tests green
25
+ 5. Push
26
+ 6. Send pull-request
27
+
28
+ ## Please do not
29
+
30
+ * Driving drunk
31
+ * Hide the fact of finding Bigfoot
32
+ * Mess with versions, gemspec file, package.json etc
data/README.md CHANGED
@@ -4,9 +4,11 @@ Do you like [Turbolinks](https://github.com/rails/turbolinks)? It's easy and fas
4
4
 
5
5
  But if you have a large codebase with lots of `$(el).bind(...)` Turbolinks will surprise you. Most part of your JavaScripts will stop working in usual way. It's because the nodes on which you bind events no longer exist.
6
6
 
7
- I wrote jquery.turbolinks to solve this problem in [my project](http://amplifr.com). It's easy to use: just require it *after* `jquery.js` and `tubrolinks.js`, but before other scripts.
7
+ I wrote jquery.turbolinks to solve this problem in [my project](http://amplifr.com). It's easy to use: just require it *immediately after* `jquery.js`. Your other scripts should be loaded after `jquery.turbolinks.js`, and `turbolinks.js` should be after your other scripts.
8
8
 
9
- Sponsored by [Evil Martians](http://evilmartians.com/).
9
+ Initially sponsored by [Evil Martians](http://evilmartians.com/).
10
+
11
+ This project is a member of the [OSS Manifesto](http://ossmanifesto.org/).
10
12
 
11
13
  ## Usage
12
14
 
@@ -22,9 +24,11 @@ JavaScript manifest file:
22
24
 
23
25
  And it just works!
24
26
 
25
- ## `$.setReadyEvent`
27
+ ## Customization
28
+
29
+ ### $.setReadyEvent
26
30
 
27
- By default [ready](https://github.com/kossnocorp/jquery.turbolinks/blob/master/src/jquery.turbolinks.coffee#L17:L18) function is binded to [page:load](https://github.com/rails/turbolinks/#events) event.
31
+ By default [ready](https://github.com/kossnocorp/jquery.turbolinks/blob/master/src/jquery.turbolinks.coffee#L17:L18) function is bound to [page:load](https://github.com/rails/turbolinks/#events) event.
28
32
 
29
33
  If you want to change it use `$.setReadyEvent` function:
30
34
 
@@ -32,7 +36,7 @@ If you want to change it use `$.setReadyEvent` function:
32
36
  $.setReadyEvent('page:change');
33
37
  ```
34
38
 
35
- ## `$.setFetchEvent`
39
+ ### $.setFetchEvent
36
40
 
37
41
  By default right after trigger `page:fetch` `$.isReady` is set to false. And after `page:load` is set to true.
38
42
 
@@ -42,36 +46,63 @@ If you want to change default behaviour you can use `$.setFetchEvent`:
42
46
  $.setReadyEvent('custom_loading_event');
43
47
  ```
44
48
 
45
- # Changelog
49
+ ## Troubleshooting
50
+
51
+ ### Events firing twice or more
52
+
53
+ If you find that some events are being fired multiple times after using jQuery Turbolinks, you may have been binding your `document` events inside a `$(function())` block. For instance, this example below can be a common occurrence and should be avoided:
54
+
55
+ ``` javascript
56
+ /* BAD: don't bind 'document' events while inside $()! */
57
+ $(function() {
58
+ $(document).on('click', 'button', function() { ... })
59
+ });
60
+ ```
61
+
62
+ You should be binding your events outside a `$(function())` block. This will ensure that your events will only ever be bound once.
63
+
64
+ ``` javascript
65
+ /* Good: events are bound outside a $() wrapper. */
66
+ $(document).on('click', 'button', function() { ... })
67
+ ```
68
+
69
+ ## Changelog
46
70
 
47
71
  This project uses [Semantic Versioning](http://semver.org/) for release numbering.
48
72
 
49
- ## 1.0.0-rc1 (November 28, 2012)
73
+ ### 1.0.0-rc2 (January 31, 2013)
74
+
75
+ * Fix problem with 3rd-party libraries [#12](https://github.com/kossnocorp/jquery.turbolinks/issues/12), [#15](https://github.com/kossnocorp/jquery.turbolinks/issues/15) (kudos to [@rstacruz](https://github.com/rstacruz));
76
+ * Reopen [#8](https://github.com/kossnocorp/jquery.turbolinks/issues/8).
77
+
78
+ ### 1.0.0-rc1 (November 28, 2012)
50
79
 
51
80
  * Set $.isReady to false after `page:fetch` [#6](https://github.com/kossnocorp/jquery.turbolinks/issues/6);
52
81
  * add `$.setFetchEvent` function;
53
- * remove all delegated events after trigger fetch event [#8](https://github.com/kossnocorp/jquery.turbolinks/issues/8);
82
+ * remove all delegated events after trigger fetch event [#8](https://github.com/kossnocorp/jquery.turbolinks/issues/8).
54
83
 
55
- ## 1.0.0-rc (November 8, 2012)
84
+ ### 1.0.0-rc (November 8, 2012)
56
85
 
57
86
  * Add turbolinks as dependency (kudos to [@gbchaosmaster](https://github.com/gbchaosmaster));
58
87
  * run callback after adding to waiting list if `$.isReady` [#6](https://github.com/kossnocorp/jquery.turbolinks/issues/6).
59
88
 
60
- ## 0.2.1 (October 15, 2012)
89
+ ### 0.2.1 (October 15, 2012)
61
90
 
62
91
  * Pass jQuery object to each callback [#4](https://github.com/kossnocorp/jquery.turbolinks/issues/4)
63
92
 
64
- ## 0.2.0 (October 10, 2012)
93
+ ### 0.2.0 (October 10, 2012)
65
94
 
66
95
  * Change event: `page:change` -> `page:load` (kudos to [@davydotcom](https://github.com/davydotcom));
67
96
  * added ability to change ready event via `$.setReadyEvent`
68
97
 
69
- ## 0.1.0 (October 3, 2012)
98
+ ### 0.1.0 (October 3, 2012)
70
99
 
71
100
  * First, initial release
72
101
 
73
- # Contributors
102
+ ## Contributors
103
+
104
+ Initial idea and code by [@kossnocorp](http://koss.nocorp.me/), with special thanks to [@rstacruz](https://github.com/rstacruz) and other the project's [contributors](https://github.com/kossnocorp/jquery.turbolinks/graphs/contributors).
74
105
 
75
- Idea and code by [@kossnocorp](http://koss.nocorp.me/).
106
+ ## License
76
107
 
77
- # [The MIT License](https://github.com/kossnocorp/jquery.turbolinks/blob/master/LICENSE.md)
108
+ [The MIT License](https://github.com/kossnocorp/jquery.turbolinks/blob/master/LICENSE.md)
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ namespace :release do
9
9
  task :build_gem do
10
10
  system 'gem build jquery-turbolinks.gemspec'
11
11
  end
12
-
12
+
13
13
  task gem: :build_gem do
14
14
  system "gem push jquery-turbolinks-#{JqueryTurbolinks::VERSION}.gem"
15
15
  end
@@ -26,7 +26,8 @@ namespace :js do
26
26
  command = [
27
27
  './node_modules/coffee-script/bin/coffee',
28
28
  '--compile',
29
- '--output ./vendor/assets/javascripts/ ./src/jquery.turbolinks.coffee'
29
+ '--output ./vendor/assets/javascripts/',
30
+ './src/jquery.turbolinks.coffee'
30
31
  ]
31
32
  system command.join(' ')
32
33
  end
@@ -24,6 +24,6 @@ Gem::Specification.new do |gem|
24
24
 
25
25
  gem.rubygems_version = '1.8.15'
26
26
 
27
- gem.add_dependency 'rails', '>= 3.1.0'
27
+ gem.add_dependency 'railties', '>= 3.1.0'
28
28
  gem.add_dependency 'turbolinks'
29
29
  end
@@ -1,3 +1,3 @@
1
1
  module JqueryTurbolinks
2
- VERSION = '1.0.0.rc1'
2
+ VERSION = '1.0.0.rc2'
3
3
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jquery.turbolinks",
3
- "version": "1.0.0-rc1",
3
+ "version": "1.0.0-rc2",
4
4
  "author": "Sasha Koss <koss@nocorp.me>",
5
5
  "description": "jQuery plugin for drop-in fix binded events problem caused by Turbolinks",
6
6
 
@@ -46,24 +46,6 @@ describe '$ Turbolinks', ->
46
46
 
47
47
  callback1.should.have.been.calledWith($)
48
48
 
49
- it '''
50
- should remove all events delegated to
51
- document after trigger fetch
52
- ''', ->
53
- id = getUniqId()
54
- selector = '#' + id
55
- addEl = ->
56
- $('body').empty()
57
- $('<div>').attr(id: id).appendTo('body')
58
-
59
- addEl()
60
- $(document).on('event_name', selector, callback1)
61
- $(selector).trigger('event_name')
62
- $(document).trigger('page:fetch')
63
- addEl()
64
- $(selector).trigger('event_name')
65
- callback1.should.have.been.calledOnce
66
-
67
49
  describe '$.setReadyEvent', ->
68
50
 
69
51
  beforeEach ->
@@ -1,5 +1,5 @@
1
1
  ###
2
- jquery.turbolinks.js ~ v1.0.0-rc1 ~ https://github.com/kossnocorp/jquery.turbolinks
2
+ jquery.turbolinks.js ~ v1.0.0-rc2 ~ https://github.com/kossnocorp/jquery.turbolinks
3
3
 
4
4
  jQuery plugin for drop-in fix binded events problem caused by Turbolinks
5
5
 
@@ -8,7 +8,7 @@
8
8
  Copyright (c) 2012 Sasha Koss
9
9
  ###
10
10
 
11
- $ = require?('jquery') || window.jQuery
11
+ $ = window.jQuery or require?('jquery')
12
12
 
13
13
  # List for store callbacks passed to `$` or `$.ready`
14
14
  callbacks = []
@@ -24,7 +24,6 @@ turbolinksReady = ->
24
24
 
25
25
  # Fetch event handler
26
26
  fetch = ->
27
- $(document).off(undefined, '**')
28
27
  $.isReady = false
29
28
 
30
29
  # Bind `ready` to DOM ready event
@@ -1,7 +1,7 @@
1
- // Generated by CoffeeScript 1.3.3
1
+ // Generated by CoffeeScript 1.4.0
2
2
 
3
3
  /*
4
- jquery.turbolinks.js ~ v1.0.0-rc1 ~ https://github.com/kossnocorp/jquery.turbolinks
4
+ jquery.turbolinks.js ~ v1.0.0-rc2 ~ https://github.com/kossnocorp/jquery.turbolinks
5
5
 
6
6
  jQuery plugin for drop-in fix binded events problem caused by Turbolinks
7
7
 
@@ -14,7 +14,7 @@
14
14
  (function() {
15
15
  var $, callbacks, fetch, ready, turbolinksReady;
16
16
 
17
- $ = (typeof require === "function" ? require('jquery') : void 0) || window.jQuery;
17
+ $ = window.jQuery || (typeof require === "function" ? require('jquery') : void 0);
18
18
 
19
19
  callbacks = [];
20
20
 
@@ -34,7 +34,6 @@
34
34
  };
35
35
 
36
36
  fetch = function() {
37
- $(document).off(void 0, '**');
38
37
  return $.isReady = false;
39
38
  };
40
39
 
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-turbolinks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc1
5
4
  prerelease: 6
5
+ version: 1.0.0.rc2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sasha Koss
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-28 00:00:00.000000000 Z
12
+ date: 2013-02-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rails
16
- requirement: !ruby/object:Gem::Requirement
15
+ prerelease: false
16
+ type: :runtime
17
+ version_requirements: !ruby/object:Gem::Requirement
17
18
  none: false
18
19
  requirements:
19
20
  - - ! '>='
20
21
  - !ruby/object:Gem::Version
21
22
  version: 3.1.0
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
23
+ name: railties
24
+ requirement: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: 3.1.0
30
30
  - !ruby/object:Gem::Dependency
31
- name: turbolinks
32
- requirement: !ruby/object:Gem::Requirement
31
+ prerelease: false
32
+ type: :runtime
33
+ version_requirements: !ruby/object:Gem::Requirement
33
34
  none: false
34
35
  requirements:
35
36
  - - ! '>='
36
37
  - !ruby/object:Gem::Version
37
38
  version: '0'
38
- type: :runtime
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
39
+ name: turbolinks
40
+ requirement: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -50,6 +50,7 @@ extensions: []
50
50
  extra_rdoc_files: []
51
51
  files:
52
52
  - .gitignore
53
+ - CONTRIBUTING.md
53
54
  - Gemfile
54
55
  - Guardfile
55
56
  - LICENSE.md
@@ -84,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
85
  version: 1.3.1
85
86
  requirements: []
86
87
  rubyforge_project: jquery-turbolinks
87
- rubygems_version: 1.8.23
88
+ rubygems_version: 1.8.24
88
89
  signing_key:
89
90
  specification_version: 3
90
91
  summary: jQuery plugin for drop-in fix binded events problem caused by Turbolinks