turbograft 0.1.18 → 0.1.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/lib/assets/javascripts/turbograft/turbolinks.coffee +12 -39
- data/lib/turbograft/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55e884d9cae78a5f4b29a9db09219330691ae419
|
4
|
+
data.tar.gz: 22397cb8a4d242ed433f095356f73ac65d2dad17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57d534662c27201f329d9882ea0406ad9cbb74ceae59a47ee69069b43155f55a824aa1438f16bfaa18e12743688a03c7a6bf41e9cd0acaed0be63c634807f690
|
7
|
+
data.tar.gz: 4319802f8a1ab14ab9913068515baaaf6a357507f39fef41804dd24cc03d62a87c02bc4c1afa1c7c0d2237a5ee1b24d950585d5046971f2702e61a8c3ef58fd2
|
data/README.md
CHANGED
@@ -20,9 +20,10 @@ Turbograft was built with simplicity in mind. It intends to offer the smallest a
|
|
20
20
|
|
21
21
|
## Installation
|
22
22
|
|
23
|
-
*
|
23
|
+
* Replace `gem "turbolinks"` with `gem "turbograft"` in your Gemfile
|
24
|
+
* Replace `//= require turbolinks` with `//= require turbograft` in _app/assets/javascripts/application.js_
|
24
25
|
* Run `bundle install`
|
25
|
-
|
26
|
+
|
26
27
|
|
27
28
|
## Usage
|
28
29
|
### Partial page refresh
|
@@ -303,7 +303,7 @@ class window.Turbolinks
|
|
303
303
|
xhr.getResponseHeader('Content-Type').match /^(?:text\/html|application\/xhtml\+xml|application\/xml)(?:;|$)/
|
304
304
|
|
305
305
|
extractTrackAssets = (doc) ->
|
306
|
-
for node in doc.head.childNodes when node.getAttribute?('data-turbolinks-track')?
|
306
|
+
for node in doc.querySelector('head').childNodes when node.getAttribute?('data-turbolinks-track')?
|
307
307
|
node.getAttribute('src') or node.getAttribute('href')
|
308
308
|
|
309
309
|
assetsChanged = (doc) ->
|
@@ -324,7 +324,7 @@ class window.Turbolinks
|
|
324
324
|
|
325
325
|
extractTitleAndBody = (doc) ->
|
326
326
|
title = doc.querySelector 'title'
|
327
|
-
[ title?.textContent, removeNoscriptTags(doc.body), CSRFToken.get(doc).token, 'runScripts' ]
|
327
|
+
[ title?.textContent, removeNoscriptTags(doc.querySelector('body')), CSRFToken.get(doc).token, 'runScripts' ]
|
328
328
|
|
329
329
|
installHistoryChangeHandler = (event) ->
|
330
330
|
if event.state?.turbolinks
|
@@ -335,48 +335,21 @@ class window.Turbolinks
|
|
335
335
|
bypassOnLoadPopstate = (fn) ->
|
336
336
|
setTimeout fn, 500
|
337
337
|
|
338
|
-
|
339
|
-
|
340
|
-
(
|
341
|
-
|
342
|
-
|
343
|
-
doc = document.
|
344
|
-
doc.
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
doc = document.implementation.createHTMLDocument ''
|
349
|
-
doc.open 'replace'
|
350
|
-
doc.write html
|
351
|
-
doc.close()
|
352
|
-
doc
|
353
|
-
|
354
|
-
# Use createDocumentUsingParser if DOMParser is defined and natively
|
355
|
-
# supports 'text/html' parsing (Firefox 12+, IE 10)
|
356
|
-
#
|
357
|
-
# Use createDocumentUsingDOM if createDocumentUsingParser throws an exception
|
358
|
-
# due to unsupported type 'text/html' (Firefox < 12, Opera)
|
359
|
-
#
|
360
|
-
# Use createDocumentUsingWrite if:
|
361
|
-
# - DOMParser isn't defined
|
362
|
-
# - createDocumentUsingParser returns null due to unsupported type 'text/html' (Chrome, Safari)
|
363
|
-
# - createDocumentUsingDOM doesn't create a valid HTML document (safeguarding against potential edge cases)
|
364
|
-
try
|
365
|
-
if window.DOMParser
|
366
|
-
testDoc = createDocumentUsingParser '<html><body><p>test'
|
367
|
-
createDocumentUsingParser
|
368
|
-
catch e
|
369
|
-
testDoc = createDocumentUsingDOM '<html><body><p>test'
|
370
|
-
createDocumentUsingDOM
|
371
|
-
finally
|
372
|
-
unless testDoc?.body?.childNodes.length is 1
|
373
|
-
return createDocumentUsingWrite
|
338
|
+
createDocument = (html) ->
|
339
|
+
if /<(html|body)/i.test(html)
|
340
|
+
doc = document.documentElement.cloneNode()
|
341
|
+
doc.innerHTML = html
|
342
|
+
else
|
343
|
+
doc = document.documentElement.cloneNode(true)
|
344
|
+
doc.querySelector('body').innerHTML = html
|
345
|
+
doc.head = doc.querySelector('head')
|
346
|
+
doc.body = doc.querySelector('body')
|
347
|
+
doc
|
374
348
|
|
375
349
|
if browserSupportsTurbolinks
|
376
350
|
@visit = fetch
|
377
351
|
@rememberCurrentUrl()
|
378
352
|
@rememberCurrentState()
|
379
|
-
createDocument = browserCompatibleDocumentParser()
|
380
353
|
|
381
354
|
document.addEventListener 'click', Click.installHandlerLast, true
|
382
355
|
|
data/lib/turbograft/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turbograft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kristian Plettenberg-Dussault
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2015-
|
16
|
+
date: 2015-06-03 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: coffee-rails
|
@@ -128,7 +128,7 @@ dependencies:
|
|
128
128
|
- !ruby/object:Gem::Version
|
129
129
|
version: '0'
|
130
130
|
- !ruby/object:Gem::Dependency
|
131
|
-
name: teaspoon
|
131
|
+
name: teaspoon-mocha
|
132
132
|
requirement: !ruby/object:Gem::Requirement
|
133
133
|
requirements:
|
134
134
|
- - ">="
|
@@ -256,7 +256,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
256
256
|
version: '0'
|
257
257
|
requirements: []
|
258
258
|
rubyforge_project:
|
259
|
-
rubygems_version: 2.2.
|
259
|
+
rubygems_version: 2.2.3
|
260
260
|
signing_key:
|
261
261
|
specification_version: 4
|
262
262
|
summary: turbolinks with partial page replacement
|