wiselinks 0.5.3 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -39,7 +39,7 @@ GEM
39
39
  rack-test (>= 0.5.4)
40
40
  selenium-webdriver (~> 2.0)
41
41
  xpath (~> 1.0.0)
42
- childprocess (0.3.8)
42
+ childprocess (0.3.9)
43
43
  ffi (~> 1.0, >= 1.0.11)
44
44
  coffee-rails (3.2.2)
45
45
  coffee-script (>= 2.2.0)
@@ -47,8 +47,8 @@ GEM
47
47
  coffee-script (2.2.0)
48
48
  coffee-script-source
49
49
  execjs
50
- coffee-script-source (1.4.0)
51
- diff-lcs (1.1.3)
50
+ coffee-script-source (1.5.0)
51
+ diff-lcs (1.2.1)
52
52
  erubis (2.7.0)
53
53
  execjs (1.4.0)
54
54
  multi_json (~> 1.0)
@@ -59,7 +59,7 @@ GEM
59
59
  ffi (1.4.0)
60
60
  git (1.2.5)
61
61
  hike (1.2.1)
62
- i18n (0.6.1)
62
+ i18n (0.6.4)
63
63
  jeweler (1.8.4)
64
64
  bundler (~> 1.0)
65
65
  git (>= 1.2.5)
@@ -101,25 +101,25 @@ GEM
101
101
  rdoc (~> 3.4)
102
102
  thor (>= 0.14.6, < 2.0)
103
103
  rake (10.0.3)
104
- rdoc (3.12.1)
104
+ rdoc (3.12.2)
105
105
  json (~> 1.4)
106
- rspec (2.12.0)
107
- rspec-core (~> 2.12.0)
108
- rspec-expectations (~> 2.12.0)
109
- rspec-mocks (~> 2.12.0)
110
- rspec-core (2.12.2)
111
- rspec-expectations (2.12.1)
112
- diff-lcs (~> 1.1.3)
113
- rspec-mocks (2.12.2)
114
- rspec-rails (2.12.2)
106
+ rspec (2.13.0)
107
+ rspec-core (~> 2.13.0)
108
+ rspec-expectations (~> 2.13.0)
109
+ rspec-mocks (~> 2.13.0)
110
+ rspec-core (2.13.0)
111
+ rspec-expectations (2.13.0)
112
+ diff-lcs (>= 1.1.3, < 2.0)
113
+ rspec-mocks (2.13.0)
114
+ rspec-rails (2.13.0)
115
115
  actionpack (>= 3.0)
116
116
  activesupport (>= 3.0)
117
117
  railties (>= 3.0)
118
- rspec-core (~> 2.12.0)
119
- rspec-expectations (~> 2.12.0)
120
- rspec-mocks (~> 2.12.0)
118
+ rspec-core (~> 2.13.0)
119
+ rspec-expectations (~> 2.13.0)
120
+ rspec-mocks (~> 2.13.0)
121
121
  rubyzip (0.9.9)
122
- selenium-webdriver (2.30.0)
122
+ selenium-webdriver (2.31.0)
123
123
  childprocess (>= 0.2.5)
124
124
  multi_json (~> 1.0)
125
125
  rubyzip
@@ -138,11 +138,11 @@ GEM
138
138
  tilt (~> 1.1, != 1.3.0)
139
139
  sqlite3 (1.3.7)
140
140
  thor (0.17.0)
141
- tilt (1.3.3)
141
+ tilt (1.3.4)
142
142
  treetop (1.4.12)
143
143
  polyglot
144
144
  polyglot (>= 0.3.1)
145
- tzinfo (0.3.35)
145
+ tzinfo (0.3.36)
146
146
  websocket (1.0.7)
147
147
  xpath (1.0.0)
148
148
  nokogiri (~> 1.3)
data/README.md CHANGED
@@ -1,9 +1,10 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/wiselinks.png)](http://badge.fury.io/rb/wiselinks)
2
2
  [![Build Status](https://travis-ci.org/igor-alexandrov/wiselinks.png?branch=master)](https://travis-ci.org/igor-alexandrov/wiselinks)
3
- [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/igor-alexandrov/wiselinks)
3
+ [![Dependency Status](https://gemnasium.com/igor-alexandrov/wiselinks.png)](https://gemnasium.com/igor-alexandrov/wiselinks)
4
4
 
5
5
 
6
- [![Dependency Status](https://gemnasium.com/igor-alexandrov/wiselinks.png)](https://gemnasium.com/igor-alexandrov/wiselinks)
6
+ [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/igor-alexandrov/wiselinks)
7
+
7
8
 
8
9
  #Wiselinks
9
10
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.3
1
+ 0.5.4
@@ -24,17 +24,18 @@ class Wiselinks
24
24
  window.location.href = "#{window.location.protocol}//#{window.location.host}#{@options.html4_root_path}#!#{window.location.pathname}"
25
25
 
26
26
  if window.location.hash.indexOf('#!') != -1
27
- self._call(window.location.hash.substring(2))
27
+ self._call(self._make_state(window.location.hash.substring(2)))
28
28
 
29
29
  History.Adapter.bind(
30
30
  window,
31
31
  "statechange"
32
32
  (event, data) ->
33
33
  state = History.getState()
34
+
34
35
  if self._template_id_changed(state)
35
- self._call(state.url, null, 'template')
36
+ self._call(self._reset_state(state))
36
37
  else
37
- self._call(state.url, state.data.target, state.data.render)
38
+ self._call(state)
38
39
  )
39
40
 
40
41
  $(document).on(
@@ -62,26 +63,26 @@ class Wiselinks
62
63
 
63
64
  load: (url, target, render = 'template') ->
64
65
  @template_id = new Date().getTime() if render != 'partial'
65
- History.pushState({ template_id: @template_id, render: render, target: target }, document.title, url )
66
+ History.pushState({ template_id: @template_id, render: render, target: target, referer: window.location.href }, document.title, url )
66
67
 
67
68
  reload: () ->
68
- History.replaceState({ template_id: @template_id, render: 'template' }, document.title, History.getState().url )
69
+ History.replaceState({ template_id: @template_id, render: 'template', referer: window.location.href }, document.title, History.getState().url )
69
70
 
70
71
  _defaults: ->
71
72
  html4: true
72
73
  html4_root_path: '/'
73
74
 
74
- _call: (url, target, render = 'template') ->
75
+ _call: (state) ->
75
76
  self = this
76
77
 
77
- $target = if target? then $(target) else self.$target
78
+ $target = if state.data.target? then $(state.data.target) else self.$target
79
+ $document = $(document).trigger('page:loading', [$target, state.data.render, state.url])
78
80
 
79
- $document = $(document).trigger('page:loading', [$target, render, url])
80
-
81
81
  $.ajax(
82
- url: url
82
+ url: state.url
83
83
  headers:
84
- 'X-Wiselinks': render
84
+ 'X-Wiselinks': state.data.render
85
+ 'X-Wiselinks-Referer': state.data.referer
85
86
 
86
87
  dataType: "html"
87
88
  ).done(
@@ -91,7 +92,7 @@ class Wiselinks
91
92
  if self._assets_changed(xhr.getResponseHeader('X-Wiselinks-Assets-Digest'))
92
93
  window.location.reload(true)
93
94
  else if url? && url != window.location.href
94
- $document.trigger('page:redirected', [$target, render, url])
95
+ $document.trigger('page:redirected', [$target, state.data.render, url])
95
96
  if ( xhr && xhr.readyState < 4)
96
97
  xhr.onreadystatechange = $.noop
97
98
  xhr.abort()
@@ -101,13 +102,13 @@ class Wiselinks
101
102
 
102
103
  $target.html(data)
103
104
 
104
- $document.trigger('page:done', [$target, status, url, data])
105
+ $document.trigger('page:done', [$target, status, state.ur, data])
105
106
  ).fail(
106
107
  (xhr, status, error) ->
107
- $document.trigger('page:fail', [$target, status, url, error])
108
+ $document.trigger('page:fail', [$target, status, state.ur, error])
108
109
  ).always(
109
110
  (data_or_xhr, status, xhr_or_error)->
110
- $document.trigger('page:always', [$target, status, url])
111
+ $document.trigger('page:always', [$target, status, state.ur])
111
112
  )
112
113
 
113
114
  _process_form: ($form) ->
@@ -169,4 +170,19 @@ class Wiselinks
169
170
  value = xhr.getResponseHeader('X-Wiselinks-Title')
170
171
  document.title = decodeURI(value) if value?
171
172
 
173
+ _make_state: (url, target, render = 'template', referer) ->
174
+ {
175
+ url: url
176
+ data:
177
+ target: target
178
+ render: render
179
+ referer: referer
180
+ }
181
+
182
+ _reset_state: (state) ->
183
+ state.data = {} unless state.data?
184
+ state.data.target = null
185
+ state.data.render = 'template'
186
+ state
187
+
172
188
  window.Wiselinks = Wiselinks
@@ -1,5 +1,18 @@
1
1
  module Wiselinks
2
2
  module Request
3
+ def self.included(base)
4
+ base.alias_method_chain :referer, :wiselinks
5
+ base.alias_method_chain :referrer, :wiselinks
6
+ end
7
+
8
+ def referer_with_wiselinks
9
+ self.headers['X-Wiselinks-Referer'] || self.referer_without_wiselinks
10
+ end
11
+
12
+ def referrer_with_wiselinks
13
+ self.referer_with_wiselinks
14
+ end
15
+
3
16
  def wiselinks?
4
17
  self.headers['X-Wiselinks'].present?
5
18
  end
data/wiselinks.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "wiselinks"
8
- s.version = "0.5.3"
8
+ s.version = "0.5.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Igor Alexandrov", "Alexey Solilin", "Julia Egorova"]
12
- s.date = "2013-02-24"
12
+ s.date = "2013-03-20"
13
13
  s.email = "igor.alexandrov@gmail.com"
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wiselinks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-02-24 00:00:00.000000000 Z
14
+ date: 2013-03-20 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: shoulda
@@ -187,7 +187,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
187
187
  version: '0'
188
188
  segments:
189
189
  - 0
190
- hash: 933560943679734063
190
+ hash: -3940307628221105571
191
191
  required_rubygems_version: !ruby/object:Gem::Requirement
192
192
  none: false
193
193
  requirements: