crazy_render 2.1.1 → 2.1.2
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 +4 -4
 - data/README.md +17 -2
 - data/app/views/render_async/_render_async.html.erb +2 -0
 - data/app/views/render_async/_request_jquery.js.erb +5 -0
 - data/app/views/render_async/_request_vanilla.js.erb +7 -1
 - data/lib/render_async/version.rb +1 -1
 - data/lib/render_async/view_helper.rb +2 -0
 - data/render_async.gemspec +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 8d655d3e927b0bf1200f8cc91a060cf3bda0c470f30499cf737902413effcb59
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 92095b148900d51966c0a5efb5df8fc050b0c6fafee1c57cf6ad51979d409c07
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: bc6a5d5f9437ac0dab17c72de0e0e9dad9b5733252694e85257f7006923f8d5dd65266d2121724b9a2674d75e7b36eae552e96a20edb22dabad9e5cfdd1d7af0
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 23bec3c584ac61302764348de08d58c22c6fdafb492b58249c7f7dd28dc6c6edf6a4b5b48e477fa9632c9823b38244fa9d91417f28e46803c54451e59ae6b078
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -252,6 +252,21 @@ it will show an [error message](#handling-errors) which you need to specify. 
     | 
|
| 
       252 
252 
     | 
    
         
             
            This can show useful when you know your requests often fail, and you don't want
         
     | 
| 
       253 
253 
     | 
    
         
             
            to refresh the whole page just to retry them.
         
     | 
| 
       254 
254 
     | 
    
         | 
| 
      
 255 
     | 
    
         
            +
            ### Toggle event
         
     | 
| 
      
 256 
     | 
    
         
            +
             
     | 
| 
      
 257 
     | 
    
         
            +
            ```erb
         
     | 
| 
      
 258 
     | 
    
         
            +
            <a href='#' id='detail-button'>detail</a>
         
     | 
| 
      
 259 
     | 
    
         
            +
            <%= render_async comments_path, toggle: { selector: '#detail-button', event: :click } %>
         
     | 
| 
      
 260 
     | 
    
         
            +
            ```
         
     | 
| 
      
 261 
     | 
    
         
            +
             
     | 
| 
      
 262 
     | 
    
         
            +
            With toggle element in placeholder
         
     | 
| 
      
 263 
     | 
    
         
            +
             
     | 
| 
      
 264 
     | 
    
         
            +
            ```erb
         
     | 
| 
      
 265 
     | 
    
         
            +
            <%= render_async comments_path, toggle: { selector: '#detail-button', event: :click } do %>
         
     | 
| 
      
 266 
     | 
    
         
            +
              <a href='#' id='detail-button'>detail</a>
         
     | 
| 
      
 267 
     | 
    
         
            +
            <% end %>
         
     | 
| 
      
 268 
     | 
    
         
            +
            ```
         
     | 
| 
      
 269 
     | 
    
         
            +
             
     | 
| 
       255 
270 
     | 
    
         
             
            ### Polling
         
     | 
| 
       256 
271 
     | 
    
         | 
| 
       257 
272 
     | 
    
         
             
            You can call `render_async` with interval argument. This will make render_async
         
     | 
| 
         @@ -267,8 +282,8 @@ This can be handy if you want to enable polling for a specific URL. 
     | 
|
| 
       267 
282 
     | 
    
         | 
| 
       268 
283 
     | 
    
         
             
            NOTE: By passing interval to `render_async`, initial container element
         
     | 
| 
       269 
284 
     | 
    
         
             
            will remain in HTML tree, it will not be replaced with request response.
         
     | 
| 
       270 
     | 
    
         
            -
            You can handle how that container element is rendered and its style by 
     | 
| 
       271 
     | 
    
         
            -
            [passing in an HTML element name](#passing-in-an-html-element-name) and 
     | 
| 
      
 285 
     | 
    
         
            +
            You can handle how that container element is rendered and its style by
         
     | 
| 
      
 286 
     | 
    
         
            +
            [passing in an HTML element name](#passing-in-an-html-element-name) and
         
     | 
| 
       272 
287 
     | 
    
         
             
            [HTML element class](#passing-in-a-container-class-name).
         
     | 
| 
       273 
288 
     | 
    
         | 
| 
       274 
289 
     | 
    
         
             
            ### Handling errors
         
     | 
| 
         @@ -15,6 +15,7 @@ 
     | 
|
| 
       15 
15 
     | 
    
         
             
                                        method: method,
         
     | 
| 
       16 
16 
     | 
    
         
             
                                        data: data,
         
     | 
| 
       17 
17 
     | 
    
         
             
                                        event_name: event_name,
         
     | 
| 
      
 18 
     | 
    
         
            +
                                        toggle: toggle,
         
     | 
| 
       18 
19 
     | 
    
         
             
                                        headers: headers,
         
     | 
| 
       19 
20 
     | 
    
         
             
                                        error_message: error_message,
         
     | 
| 
       20 
21 
     | 
    
         
             
                                        error_event_name: error_event_name,
         
     | 
| 
         @@ -29,6 +30,7 @@ 
     | 
|
| 
       29 
30 
     | 
    
         
             
                                        method: method,
         
     | 
| 
       30 
31 
     | 
    
         
             
                                        data: data,
         
     | 
| 
       31 
32 
     | 
    
         
             
                                        event_name: event_name,
         
     | 
| 
      
 33 
     | 
    
         
            +
                                        toggle: toggle,
         
     | 
| 
       32 
34 
     | 
    
         
             
                                        headers: headers,
         
     | 
| 
       33 
35 
     | 
    
         
             
                                        error_message: error_message,
         
     | 
| 
       34 
36 
     | 
    
         
             
                                        error_event_name: error_event_name,
         
     | 
| 
         @@ -81,6 +81,11 @@ if (window.jQuery) { 
     | 
|
| 
       81 
81 
     | 
    
         
             
                  setInterval(_listener, <%= interval %>);
         
     | 
| 
       82 
82 
     | 
    
         
             
                }
         
     | 
| 
       83 
83 
     | 
    
         
             
                $(document).ready(_intervalFunction);
         
     | 
| 
      
 84 
     | 
    
         
            +
                <% elsif toggle %>
         
     | 
| 
      
 85 
     | 
    
         
            +
                $(document).on('<%= toggle[:event] %>', '<%= toggle[:selector]%>', function(event) {
         
     | 
| 
      
 86 
     | 
    
         
            +
                  event.preventDefault();
         
     | 
| 
      
 87 
     | 
    
         
            +
                  _listener();
         
     | 
| 
      
 88 
     | 
    
         
            +
                });
         
     | 
| 
       84 
89 
     | 
    
         
             
                <% else %>
         
     | 
| 
       85 
90 
     | 
    
         
             
                $(document).ready(_listener);
         
     | 
| 
       86 
91 
     | 
    
         
             
                <% end %>
         
     | 
| 
         @@ -4,7 +4,7 @@ 
     | 
|
| 
       4 
4 
     | 
    
         
             
                return;
         
     | 
| 
       5 
5 
     | 
    
         
             
              }
         
     | 
| 
       6 
6 
     | 
    
         
             
              <% end %>
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
       8 
8 
     | 
    
         
             
              var _listener = function(currentRetryCount) {
         
     | 
| 
       9 
9 
     | 
    
         
             
                var request = new XMLHttpRequest();
         
     | 
| 
       10 
10 
     | 
    
         
             
                var asyncRequest = true;
         
     | 
| 
         @@ -97,6 +97,12 @@ 
     | 
|
| 
       97 
97 
     | 
    
         
             
                setInterval(_listener, <%= interval %>);
         
     | 
| 
       98 
98 
     | 
    
         
             
              }
         
     | 
| 
       99 
99 
     | 
    
         
             
              document.addEventListener("DOMContentLoaded", _intervalFunction);
         
     | 
| 
      
 100 
     | 
    
         
            +
              <% elsif toggle %>
         
     | 
| 
      
 101 
     | 
    
         
            +
              var selectors = document.querySelectorAll('<%= toggle[:selector] %>');
         
     | 
| 
      
 102 
     | 
    
         
            +
              selectors.forEach(selector => selector.addEventListener('<%= toggle[:event] %>', function(event) {
         
     | 
| 
      
 103 
     | 
    
         
            +
                event.preventDefault();
         
     | 
| 
      
 104 
     | 
    
         
            +
                _listener();
         
     | 
| 
      
 105 
     | 
    
         
            +
              }));
         
     | 
| 
       100 
106 
     | 
    
         
             
              <% else %>
         
     | 
| 
       101 
107 
     | 
    
         
             
              document.addEventListener("DOMContentLoaded", _listener);
         
     | 
| 
       102 
108 
     | 
    
         
             
              <% end %>
         
     | 
    
        data/lib/render_async/version.rb
    CHANGED
    
    
| 
         @@ -22,6 +22,7 @@ module RenderAsync 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  container_id = options.delete(:container_id) || generate_container_id
         
     | 
| 
       23 
23 
     | 
    
         
             
                  container_class = options.delete(:container_class)
         
     | 
| 
       24 
24 
     | 
    
         
             
                  event_name = options.delete(:event_name)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  toggle = options.delete(:toggle)
         
     | 
| 
       25 
26 
     | 
    
         
             
                  placeholder = capture(&placeholder) if block_given?
         
     | 
| 
       26 
27 
     | 
    
         
             
                  method = options.delete(:method) || 'GET'
         
     | 
| 
       27 
28 
     | 
    
         
             
                  data = options.delete(:data)
         
     | 
| 
         @@ -37,6 +38,7 @@ module RenderAsync 
     | 
|
| 
       37 
38 
     | 
    
         
             
                                                      path: path,
         
     | 
| 
       38 
39 
     | 
    
         
             
                                                      html_options: options,
         
     | 
| 
       39 
40 
     | 
    
         
             
                                                      event_name: event_name,
         
     | 
| 
      
 41 
     | 
    
         
            +
                                                      toggle: toggle,
         
     | 
| 
       40 
42 
     | 
    
         
             
                                                      placeholder: placeholder,
         
     | 
| 
       41 
43 
     | 
    
         
             
                                                      method: method,
         
     | 
| 
       42 
44 
     | 
    
         
             
                                                      data: data,
         
     | 
    
        data/render_async.gemspec
    CHANGED
    
    | 
         @@ -7,7 +7,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       7 
7 
     | 
    
         
             
              spec.name          = "crazy_render"
         
     | 
| 
       8 
8 
     | 
    
         
             
              spec.version       = RenderAsync::VERSION
         
     | 
| 
       9 
9 
     | 
    
         
             
              spec.authors       = ["ThanhKhoaIT", "Kasper Grubbe", "nikolalsvk"]
         
     | 
| 
       10 
     | 
    
         
            -
              spec.email         = [" 
     | 
| 
      
 10 
     | 
    
         
            +
              spec.email         = ["ThanhKhoaIT@gmail.com"]
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              spec.summary       = "Render parts of the page asynchronously with AJAX"
         
     | 
| 
       13 
13 
     | 
    
         
             
              spec.description   = "Load parts of your page through simple JavaScript and Rails pipeline"
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: crazy_render
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.1.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - ThanhKhoaIT
         
     | 
| 
         @@ -56,7 +56,7 @@ dependencies: 
     | 
|
| 
       56 
56 
     | 
    
         
             
                    version: 1.0.8
         
     | 
| 
       57 
57 
     | 
    
         
             
            description: Load parts of your page through simple JavaScript and Rails pipeline
         
     | 
| 
       58 
58 
     | 
    
         
             
            email:
         
     | 
| 
       59 
     | 
    
         
            -
            -  
     | 
| 
      
 59 
     | 
    
         
            +
            - ThanhKhoaIT@gmail.com
         
     | 
| 
       60 
60 
     | 
    
         
             
            executables: []
         
     | 
| 
       61 
61 
     | 
    
         
             
            extensions: []
         
     | 
| 
       62 
62 
     | 
    
         
             
            extra_rdoc_files: []
         
     |