render_async 2.1.3 → 2.1.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d13bfaa3c586626eaa437f630480bf9064d0f1911c6a01f58249a8ac39780d24
4
- data.tar.gz: 90fba9806adaef5780b8ff29f3dec5caf55566f074960478aeb7887cb3dac58c
3
+ metadata.gz: 35597f0995adbebc4f107d97119e8788124cab866f374fbf17145aed6d9b4cab
4
+ data.tar.gz: bdf3a4230bed1b7a16f06247320e382afef3429bb807a5372cd42352f0350f31
5
5
  SHA512:
6
- metadata.gz: 001dffc235adcc65d162547306f53359afc156aed0c063f9bed33a46bdd46e67c16224121d37b59a4f72c36328095c3950cd980cdc94be6042609ea980483785
7
- data.tar.gz: 6a89d1ba7eb39bd4dbe97f7471af5473e4a54970a1075fea58390eae4da104595f2cc1f743fdbfdf965605f7c0791a1efbff64d0bbdb757d71fd0e9032f14ede
6
+ metadata.gz: 4177b9a1a8c89b8a02059d0d2b2e871191ff5fec2f141de5321897884d5628dbc95468b5783f6ef8ae988c3a0fb82519d5a68c120fd4cbca88c22ea8209579b4
7
+ data.tar.gz: '0149a06b46673296d341a253aa50219778216208ec1a7a30da869128d8380080652cd74dd40684cb97389107d551df0ec9fe71f1dfc9daa8cb62e0826a15132b'
data/README.md CHANGED
@@ -267,6 +267,8 @@ do this by doing the following:
267
267
  ```
268
268
 
269
269
  This will trigger `render_async` to load the `comments_path` when you click the `#details-button` element.
270
+ If you wannt to remove event once it's triggered, you can pass `once: true` in the toggle options.
271
+ The `once` option is false by default.
270
272
 
271
273
  You can also pass in a placeholder before the `render_async` is triggered. That
272
274
  way, the element that started `render_async` logic will be removed after the
@@ -84,9 +84,9 @@ if (window.jQuery) {
84
84
  <% end %>
85
85
 
86
86
  <% if toggle %>
87
- $(document).on('<%= toggle[:event] || 'click' %>', '<%= toggle[:selector] %>', function(event) {
87
+ $(document).<%= toggle[:once] ? 'one' : 'on' %>('<%= toggle[:event] || 'click' %>', '<%= toggle[:selector] %>', function(event) {
88
88
  event.preventDefault();
89
- if (typeof _interval === 'number') {
89
+ if (typeof(_interval) === 'number') {
90
90
  clearInterval(_interval);
91
91
  _interval = undefined;
92
92
  } else {
@@ -98,17 +98,21 @@
98
98
 
99
99
  <% if toggle %>
100
100
  var selectors = document.querySelectorAll('<%= toggle[:selector] %>');
101
+ var handler = function(event) {
102
+ event.preventDefault();
103
+ if (typeof(_interval) === 'number') {
104
+ clearInterval(_interval);
105
+ _interval = undefined;
106
+ } else {
107
+ _renderAsyncFunction();
108
+ }
109
+ <% if toggle[:once] %>
110
+ this.removeEventListener(event.type, handler);
111
+ <% end %>
112
+ };
101
113
 
102
114
  [...selectors].forEach(function(selector) {
103
- selector.addEventListener('<%= toggle[:event] || 'click' %>', function(event) {
104
- event.preventDefault();
105
- if (typeof _interval === 'number') {
106
- clearInterval(_interval);
107
- _interval = undefined;
108
- } else {
109
- _renderAsyncFunction();
110
- }
111
- })
115
+ selector.addEventListener('<%= toggle[:event] || 'click' %>', handler)
112
116
  });
113
117
  <% end %>
114
118
 
@@ -1,3 +1,3 @@
1
1
  module RenderAsync
2
- VERSION = "2.1.3".freeze
2
+ VERSION = "2.1.4".freeze
3
3
  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: 2.1.3
4
+ version: 2.1.4
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: 2019-10-19 00:00:00.000000000 Z
12
+ date: 2019-11-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake