jquery-turbolinks 1.0.0.rc → 1.0.0.rc1

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.
data/README.md CHANGED
@@ -32,10 +32,26 @@ If you want to change it use `$.setReadyEvent` function:
32
32
  $.setReadyEvent('page:change');
33
33
  ```
34
34
 
35
+ ## `$.setFetchEvent`
36
+
37
+ By default right after trigger `page:fetch` `$.isReady` is set to false. And after `page:load` is set to true.
38
+
39
+ If you want to change default behaviour you can use `$.setFetchEvent`:
40
+
41
+ ``` js
42
+ $.setReadyEvent('custom_loading_event');
43
+ ```
44
+
35
45
  # Changelog
36
46
 
37
47
  This project uses [Semantic Versioning](http://semver.org/) for release numbering.
38
48
 
49
+ ## 1.0.0-rc1 (November 28, 2012)
50
+
51
+ * Set $.isReady to false after `page:fetch` [#6](https://github.com/kossnocorp/jquery.turbolinks/issues/6);
52
+ * add `$.setFetchEvent` function;
53
+ * remove all delegated events after trigger fetch event [#8](https://github.com/kossnocorp/jquery.turbolinks/issues/8);
54
+
39
55
  ## 1.0.0-rc (November 8, 2012)
40
56
 
41
57
  * Add turbolinks as dependency (kudos to [@gbchaosmaster](https://github.com/gbchaosmaster));
data/Rakefile CHANGED
@@ -4,15 +4,21 @@ require 'talks'
4
4
 
5
5
  $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
6
6
  require 'jquery-turbolinks/version'
7
-
8
- namespace :gem do
9
- task :build do
7
+
8
+ namespace :release do
9
+ task :build_gem do
10
10
  system 'gem build jquery-turbolinks.gemspec'
11
11
  end
12
12
 
13
- task release: :build do
13
+ task gem: :build_gem do
14
14
  system "gem push jquery-turbolinks-#{JqueryTurbolinks::VERSION}.gem"
15
15
  end
16
+
17
+ task :npm do
18
+ system 'npm publish'
19
+ end
20
+
21
+ task all: [:gem, :npm]
16
22
  end
17
23
 
18
24
  namespace :js do
@@ -9,11 +9,10 @@ Gem::Specification.new do |gem|
9
9
 
10
10
  gem.authors = ['Sasha Koss']
11
11
  gem.email = 'koss@nocorp.me'
12
- gem.date = '2012-10-03'
13
12
 
14
13
  gem.description = 'jQuery plugin for drop-in fix binded events problem caused by Turbolinks'
15
14
  gem.summary = 'jQuery plugin for drop-in fix binded events problem caused by Turbolinks'
16
- gem.homepage = 'https://github.com/kossnocorp/jquery-turbolinks'
15
+ gem.homepage = 'https://github.com/kossnocorp/jquery.turbolinks'
17
16
 
18
17
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
18
  gem.files = `git ls-files`.split("\n")
@@ -1,3 +1,3 @@
1
1
  module JqueryTurbolinks
2
- VERSION = '1.0.0.rc'
2
+ VERSION = '1.0.0.rc1'
3
3
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jquery.turbolinks",
3
- "version": "1.0.0-rc",
3
+ "version": "1.0.0-rc1",
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
 
@@ -13,6 +13,10 @@ $ = require('jquery')
13
13
  chai.should()
14
14
  chai.use(sinonChai)
15
15
 
16
+ getUniqId = do ->
17
+ counter = 0
18
+ -> 'id_' + (counter += 1)
19
+
16
20
  describe '$ Turbolinks', ->
17
21
 
18
22
  callback1 = callback2 = null
@@ -20,6 +24,8 @@ describe '$ Turbolinks', ->
20
24
  describe "DOM isn't ready", ->
21
25
 
22
26
  beforeEach ->
27
+ $.setReadyEvent('page:load')
28
+ $.setFetchEvent('page:fetch')
23
29
  $.isReady = false
24
30
 
25
31
  $(callback1 = sinon.spy())
@@ -40,8 +46,30 @@ describe '$ Turbolinks', ->
40
46
 
41
47
  callback1.should.have.been.calledWith($)
42
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
+
43
67
  describe '$.setReadyEvent', ->
44
68
 
69
+ beforeEach ->
70
+ $.setReadyEvent('page:load')
71
+ $.setFetchEvent('page:fetch')
72
+
45
73
  it 'should unbind default (page:load) event', ->
46
74
  $.setReadyEvent('random_event_name')
47
75
 
@@ -60,14 +88,39 @@ describe '$ Turbolinks', ->
60
88
  callback1.should.have.been.calledOnce
61
89
  callback2.should.have.been.calledOnce
62
90
 
63
- describe "DOM is ready", ->
91
+ describe '$.setFetchEvent', ->
92
+
93
+ beforeEach ->
94
+ $.setReadyEvent('page:load')
95
+ $.setFetchEvent('page:fetch')
96
+ $.isReady = true
97
+
98
+ it 'should unbind default (page:fetch) event', ->
99
+ $.setFetchEvent('random_event_name')
100
+ $(document).trigger('page:fetch')
101
+ $.isReady.should.to.be.true
102
+
103
+ it 'should bind passed fetch event', ->
104
+ $.setFetchEvent('page:loading')
105
+ $(document).trigger('page:loading')
106
+ $.isReady.should.to.be.false
107
+
108
+ describe 'DOM is ready', ->
64
109
 
65
110
  beforeEach ->
111
+ $.setReadyEvent('page:load')
112
+ $.setFetchEvent('page:fetch')
66
113
  $.isReady = true
67
114
 
115
+ it 'should call trigger right after add to waiting list', ->
116
+ $(callback = sinon.spy())
117
+ callback.should.have.been.calledOnce
118
+
119
+ it 'should not call trigger after page:fetch and before page:load', ->
120
+ $(document).trigger('page:fetch')
68
121
  $(callback1 = sinon.spy())
69
- $(callback2 = sinon.spy())
122
+ callback1.should.have.not.been.called
70
123
 
71
- it 'should call trigger right after add to waiting list', ->
72
- callback1.should.have.been.calledOnce
124
+ $(document).trigger('page:load')
125
+ $(callback2 = sinon.spy())
73
126
  callback2.should.have.been.calledOnce
@@ -1,5 +1,5 @@
1
1
  ###
2
- jquery.turbolinks.js ~ v1.0.0-rc ~ https://github.com/kossnocorp/jquery.turbolinks
2
+ jquery.turbolinks.js ~ v1.0.0-rc1 ~ https://github.com/kossnocorp/jquery.turbolinks
3
3
 
4
4
  jQuery plugin for drop-in fix binded events problem caused by Turbolinks
5
5
 
@@ -17,6 +17,16 @@ callbacks = []
17
17
  ready = ->
18
18
  callback($) for callback in callbacks
19
19
 
20
+ # Turbolinks ready event
21
+ turbolinksReady = ->
22
+ $.isReady = true
23
+ ready()
24
+
25
+ # Fetch event handler
26
+ fetch = ->
27
+ $(document).off(undefined, '**')
28
+ $.isReady = false
29
+
20
30
  # Bind `ready` to DOM ready event
21
31
  $(ready)
22
32
 
@@ -28,8 +38,17 @@ $.fn.ready = (callback) ->
28
38
  # Bind ready to passed event
29
39
  $.setReadyEvent = (event) ->
30
40
  $(document)
31
- .off('.turbolinks')
32
- .on(event + '.turbolinks', ready)
41
+ .off('.turbolinks-ready')
42
+ .on(event + '.turbolinks-ready', turbolinksReady)
33
43
 
34
- # Bind `ready` to Tubolinks page load event
44
+ # Bind fetch event
45
+ $.setFetchEvent = (event) ->
46
+ $(document)
47
+ .off('.turbolinks-fetch')
48
+ .on(event + '.turbolinks-fetch', fetch)
49
+
50
+ # Bind `ready` to Tubolinks page:load
35
51
  $.setReadyEvent('page:load')
52
+
53
+ # Bind fetch to Turbolinks page:fetch
54
+ $.setFetchEvent('page:fetch')
@@ -1,7 +1,7 @@
1
1
  // Generated by CoffeeScript 1.3.3
2
2
 
3
3
  /*
4
- jquery.turbolinks.js ~ v1.0.0-rc ~ https://github.com/kossnocorp/jquery.turbolinks
4
+ jquery.turbolinks.js ~ v1.0.0-rc1 ~ https://github.com/kossnocorp/jquery.turbolinks
5
5
 
6
6
  jQuery plugin for drop-in fix binded events problem caused by Turbolinks
7
7
 
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
  (function() {
15
- var $, callbacks, ready;
15
+ var $, callbacks, fetch, ready, turbolinksReady;
16
16
 
17
17
  $ = (typeof require === "function" ? require('jquery') : void 0) || window.jQuery;
18
18
 
@@ -28,6 +28,16 @@
28
28
  return _results;
29
29
  };
30
30
 
31
+ turbolinksReady = function() {
32
+ $.isReady = true;
33
+ return ready();
34
+ };
35
+
36
+ fetch = function() {
37
+ $(document).off(void 0, '**');
38
+ return $.isReady = false;
39
+ };
40
+
31
41
  $(ready);
32
42
 
33
43
  $.fn.ready = function(callback) {
@@ -38,9 +48,15 @@
38
48
  };
39
49
 
40
50
  $.setReadyEvent = function(event) {
41
- return $(document).off('.turbolinks').on(event + '.turbolinks', ready);
51
+ return $(document).off('.turbolinks-ready').on(event + '.turbolinks-ready', turbolinksReady);
52
+ };
53
+
54
+ $.setFetchEvent = function(event) {
55
+ return $(document).off('.turbolinks-fetch').on(event + '.turbolinks-fetch', fetch);
42
56
  };
43
57
 
44
58
  $.setReadyEvent('page:load');
45
59
 
60
+ $.setFetchEvent('page:fetch');
61
+
46
62
  }).call(this);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-turbolinks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc
4
+ version: 1.0.0.rc1
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-03 00:00:00.000000000 Z
12
+ date: 2012-11-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -63,7 +63,7 @@ files:
63
63
  - spec/jquery.turbolinks_spec.coffee
64
64
  - src/jquery.turbolinks.coffee
65
65
  - vendor/assets/javascripts/jquery.turbolinks.js
66
- homepage: https://github.com/kossnocorp/jquery-turbolinks
66
+ homepage: https://github.com/kossnocorp/jquery.turbolinks
67
67
  licenses:
68
68
  - MIT
69
69
  post_install_message: