render_async 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4cb50b82faad4e5b955dee426984e606277e5000
4
- data.tar.gz: 30b577cb393842086bb39b0b52c3913d62cec3c0
3
+ metadata.gz: aec789eda10aa5db3c538756631ee0e6963c6f5e
4
+ data.tar.gz: 424668e8679890bbf1b8d37bf4ec1e56a7c7cbaf
5
5
  SHA512:
6
- metadata.gz: cefdcad421559d06858b1b13e9e70f6c4c79781d7dbb8255ea6265c4e09079733092ea25238c7610c0e803c326b11f8fe34ff50bd953582cdf3ca4fcf4a1bea6
7
- data.tar.gz: e01ae7a2d71bec7d25f853e0edc640b3f83786e1d3143943e0eee46ab549584fa9b1280f19f5359b52105525cc19c066658a753524735672a6ae2aca5e234e70
6
+ metadata.gz: 6cd574849e185137bf16f02b7502ea4f3d0d18deedbf383b289e8f5ee0455c49d55a077f298b01a4338730e5198dda222dc2fbdb03ebe99964ba615b7763c555
7
+ data.tar.gz: 508546ce17b2ffad8e730c1050dc484b266dfb894318c5c8b9693e8e48a53e3ff42555970840d1bec4ade0dcc6b029ca5349437d51d1d8f8f575551c213f4858
data/.all-contributorsrc CHANGED
@@ -58,6 +58,25 @@
58
58
  "code",
59
59
  "doc"
60
60
  ]
61
+ },
62
+ {
63
+ "login": "SaladFork",
64
+ "name": "Elad Shahar",
65
+ "avatar_url": "https://avatars3.githubusercontent.com/u/107798?v=4",
66
+ "profile": "https://eladshahar.com",
67
+ "contributions": [
68
+ "code"
69
+ ]
70
+ },
71
+ {
72
+ "login": "sasharevzin",
73
+ "name": "Sasha",
74
+ "avatar_url": "https://avatars3.githubusercontent.com/u/232392?v=4",
75
+ "profile": "http://www.revzin.co.il",
76
+ "contributions": [
77
+ "code",
78
+ "doc"
79
+ ]
61
80
  }
62
81
  ]
63
82
  }
data/README.md CHANGED
@@ -1,18 +1,22 @@
1
1
  [![Build Status](https://semaphoreci.com/api/v1/renderedtext/render_async/branches/master/shields_badge.svg)](https://semaphoreci.com/renderedtext/render_async)
2
- [![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors)
2
+ [![All Contributors](https://img.shields.io/badge/all_contributors-7-orange.svg?style=flat-square)](#contributors)
3
3
  [![Gem Version](https://badge.fury.io/rb/render_async.svg)](https://badge.fury.io/rb/render_async)
4
+ [![Code Climate](https://codeclimate.com/github/renderedtext/render_async/badges/gpa.svg)](https://codeclimate.com/github/renderedtext/render_async)
5
+ [![Test Coverage](https://codeclimate.com/github/renderedtext/render_async/badges/coverage.svg)](https://codeclimate.com/github/renderedtext/render_async/coverage)
4
6
 
5
7
  ![render_async](https://semaphoreci.com/blog/assets/images/2017-06-08/speed-up-rendering-rails-pages-with-render-async-6c40eb39.png)
6
8
 
7
9
  # render_async
8
10
 
9
- Renders partials to your views **asynchronously**. This is done through adding
10
- Javascript code that does AJAX request to your controller which then renders
11
- your partial.
11
+ Speed up rendering Rails pages with this gem.
12
+
13
+ `render_async` renders partials to your views **asynchronously**. This is done
14
+ through adding Javascript code that does AJAX request to your controller which
15
+ then renders your partial into a Rails view.
12
16
 
13
17
  Workflow:
14
18
 
15
- 1. user visits a page
19
+ 1. user visits a Rails page
16
20
  2. AJAX request on the controller action
17
21
  3. controller renders a partial
18
22
  4. partials renders in the place where you put `render_async` helper
@@ -98,13 +102,21 @@ Rendered code in the view:
98
102
 
99
103
  <script nonce="lWaaV6eYicpt+oyOfcShYINsz0b70iR+Q1mohZqNaag=">
100
104
  //<![CDATA[
101
-
102
- (function($){
103
- $.ajax({ url: "/users" }).always(function(response) {
104
- $("#render_async_18b8a6cd161499117471").replaceWith(response);
105
- });
106
- }(jQuery));
107
-
105
+ (function() {
106
+ var request = new XMLHttpRequest();
107
+ var asyncRequest = true;
108
+ var SUCCESS = 200;
109
+ var ERROR = 400;
110
+ request.open("GET", "/users", asyncRequest);
111
+
112
+ request.onload = function() {
113
+ if (request.status >= SUCCESS && request.status < ERROR) {
114
+ document.getElementById("render_async_18b41794481507226109").outerHTML = request.responseText;
115
+ }
116
+ };
117
+
118
+ request.send();
119
+ })();
108
120
  //]]>
109
121
  </script>
110
122
  ```
@@ -130,13 +142,21 @@ Rendered code in the view:
130
142
 
131
143
  <script>
132
144
  //<![CDATA[
133
-
134
- (function($){
135
- $.ajax({ url: "/users" }).always(function(response) {
136
- $("#render_async_14d7ac165d1505993721").replaceWith(response);
137
- });
138
- }(jQuery));
139
-
145
+ (function() {
146
+ var request = new XMLHttpRequest();
147
+ var asyncRequest = true;
148
+ var SUCCESS = 200;
149
+ var ERROR = 400;
150
+ request.open("GET", "/users", asyncRequest);
151
+
152
+ request.onload = function() {
153
+ if (request.status >= SUCCESS && request.status < ERROR) {
154
+ document.getElementById("render_async_14d7ac165d1505993721").outerHTML = request.responseText;
155
+ }
156
+ };
157
+
158
+ request.send();
159
+ })();
140
160
  //]]>
141
161
  </script>
142
162
  ```
@@ -172,6 +192,18 @@ In your views:
172
192
  * You can expire cache simply by passing `:expires_in` in your view where
173
193
  you cache the partial
174
194
 
195
+ ## Using with Turbolinks
196
+
197
+ On Turbolinks applications, you may experience caching issues when navigating
198
+ away from, and then back to, a page with a `render_async` call on it. This will
199
+ likely show up as an empty div.
200
+
201
+ To resolve, tell turbolinks to reload your `render_async` call as follows:
202
+
203
+ ```erb
204
+ <%= render_async events_path, 'data-turbolinks-track': 'reload' %>
205
+ ```
206
+
175
207
  ## Development
176
208
 
177
209
  After checking out the repo, run `bin/setup` to install dependencies. Then, run
@@ -197,8 +229,8 @@ The gem is available as open source under the terms of the [MIT License](http://
197
229
  Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
198
230
 
199
231
  <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
200
- | [<img src="https://avatars2.githubusercontent.com/u/3028124?v=4" width="100px;"/><br /><sub>Nikola Đuza</sub>](http://nikoladjuza.me/)<br />[💬](#question-nikolalsvk "Answering Questions") [🐛](https://github.com/renderedtext/render_async/issues?q=author%3Anikolalsvk "Bug reports") [💻](https://github.com/renderedtext/render_async/commits?author=nikolalsvk "Code") [📖](https://github.com/renderedtext/render_async/commits?author=nikolalsvk "Documentation") [💡](#example-nikolalsvk "Examples") [👀](#review-nikolalsvk "Reviewed Pull Requests") | [<img src="https://avatars0.githubusercontent.com/u/3866868?v=4" width="100px;"/><br /><sub>Colin</sub>](http://www.colinxfleming.com)<br />[💻](https://github.com/renderedtext/render_async/commits?author=colinxfleming "Code") [📖](https://github.com/renderedtext/render_async/commits?author=colinxfleming "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/334273?v=4" width="100px;"/><br /><sub>Kasper Grubbe</sub>](http://kaspergrubbe.com)<br />[💻](https://github.com/renderedtext/render_async/commits?author=kaspergrubbe "Code") | [<img src="https://avatars2.githubusercontent.com/u/163584?v=4" width="100px;"/><br /><sub>Sai Ram Kunala</sub>](https://sairam.xyz/)<br />[📖](https://github.com/renderedtext/render_async/commits?author=sairam "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/3065882?v=4" width="100px;"/><br /><sub>Josh Arnold</sub>](https://github.com/nightsurge)<br />[💻](https://github.com/renderedtext/render_async/commits?author=nightsurge "Code") [📖](https://github.com/renderedtext/render_async/commits?author=nightsurge "Documentation") |
201
- | :---: | :---: | :---: | :---: | :---: |
232
+ | [<img src="https://avatars2.githubusercontent.com/u/3028124?v=4" width="100px;"/><br /><sub>Nikola Đuza</sub>](http://nikoladjuza.me/)<br />[💬](#question-nikolalsvk "Answering Questions") [🐛](https://github.com/renderedtext/render_async/issues?q=author%3Anikolalsvk "Bug reports") [💻](https://github.com/renderedtext/render_async/commits?author=nikolalsvk "Code") [📖](https://github.com/renderedtext/render_async/commits?author=nikolalsvk "Documentation") [💡](#example-nikolalsvk "Examples") [👀](#review-nikolalsvk "Reviewed Pull Requests") | [<img src="https://avatars0.githubusercontent.com/u/3866868?v=4" width="100px;"/><br /><sub>Colin</sub>](http://www.colinxfleming.com)<br />[💻](https://github.com/renderedtext/render_async/commits?author=colinxfleming "Code") [📖](https://github.com/renderedtext/render_async/commits?author=colinxfleming "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/334273?v=4" width="100px;"/><br /><sub>Kasper Grubbe</sub>](http://kaspergrubbe.com)<br />[💻](https://github.com/renderedtext/render_async/commits?author=kaspergrubbe "Code") | [<img src="https://avatars2.githubusercontent.com/u/163584?v=4" width="100px;"/><br /><sub>Sai Ram Kunala</sub>](https://sairam.xyz/)<br />[📖](https://github.com/renderedtext/render_async/commits?author=sairam "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/3065882?v=4" width="100px;"/><br /><sub>Josh Arnold</sub>](https://github.com/nightsurge)<br />[💻](https://github.com/renderedtext/render_async/commits?author=nightsurge "Code") [📖](https://github.com/renderedtext/render_async/commits?author=nightsurge "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/107798?v=4" width="100px;"/><br /><sub>Elad Shahar</sub>](https://eladshahar.com)<br />[💻](https://github.com/renderedtext/render_async/commits?author=SaladFork "Code") | [<img src="https://avatars3.githubusercontent.com/u/232392?v=4" width="100px;"/><br /><sub>Sasha</sub>](http://www.revzin.co.il)<br />[💻](https://github.com/renderedtext/render_async/commits?author=sasharevzin "Code") [📖](https://github.com/renderedtext/render_async/commits?author=sasharevzin "Documentation") |
233
+ | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
202
234
  <!-- ALL-CONTRIBUTORS-LIST:END -->
203
235
 
204
236
  This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
@@ -4,10 +4,21 @@
4
4
 
5
5
  <% content_for :render_async do %>
6
6
  <%= javascript_tag html_options do %>
7
- (function($){
8
- $.ajax({ url: "<%= path %>" }).always(function(response) {
9
- $("#<%= container_id %>").replaceWith(response);
10
- });
11
- }(jQuery));
7
+ (function() {
8
+ var request = new XMLHttpRequest();
9
+ var asyncRequest = true;
10
+ var SUCCESS = 200;
11
+ var ERROR = 400;
12
+
13
+ request.open("GET", "<%= path %>", asyncRequest);
14
+
15
+ request.onload = function() {
16
+ if (request.status >= SUCCESS && request.status < ERROR) {
17
+ document.getElementById("<%= container_id %>").outerHTML = request.responseText;
18
+ }
19
+ };
20
+
21
+ request.send();
22
+ })();
12
23
  <% end %>
13
24
  <% end %>
@@ -1,3 +1,3 @@
1
1
  module RenderAsync
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
data/render_async.gemspec CHANGED
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency "bundler", "~> 1.8"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
26
  spec.add_development_dependency "rspec", "~> 3.2"
27
+ spec.add_development_dependency "codeclimate-test-reporter", "~> 1.0.8"
27
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: render_async
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kasper Grubbe
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-09-21 00:00:00.000000000 Z
12
+ date: 2017-10-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -53,6 +53,20 @@ dependencies:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
55
  version: '3.2'
56
+ - !ruby/object:Gem::Dependency
57
+ name: codeclimate-test-reporter
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 1.0.8
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 1.0.8
56
70
  description: Load parts of your page through simple Javascript and Rails pipeline
57
71
  email:
58
72
  - nikolaseap@gmail.com
@@ -95,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
109
  version: '0'
96
110
  requirements: []
97
111
  rubyforge_project:
98
- rubygems_version: 2.4.8
112
+ rubygems_version: 2.6.13
99
113
  signing_key:
100
114
  specification_version: 4
101
115
  summary: Render parts of the page asynchronously with AJAX