quince 0.4.0 → 0.4.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
  SHA256:
3
- metadata.gz: '0039bd9ca9658cfebba4048cc84fdbb095d8f2e656930501528f420c4dfa3bba'
4
- data.tar.gz: a9720e7b11db54113fd56f1e09e43c980893297bbd5d3f46b1cdd0fc8ea2b61e
3
+ metadata.gz: 7821a6a97b508f9ad109b4ae7e59d9ccd774b94b2e451a9809eed7fa941e5cba
4
+ data.tar.gz: 5d5b6137d4089497408776c24152239fb99ac4977d5c31778cfa9bfa21518ee4
5
5
  SHA512:
6
- metadata.gz: 6117b88cd23184b2072adae7b3b99ca868197119ffac9344477e6048519c735c7daa498067a4b96a92b60d68ce8fb5e0cc5a40529734c5c01c3b49e58317002d
7
- data.tar.gz: f7952f3eea1cee2ef4153cbe4be1a5c709d777130f7eaa3be3ec0f5fa728da3550b81713766fcea6003673d8a65dd8a92aaae4ee3b1fb599b773463a67c5f05d
6
+ metadata.gz: cb40eef0228b05bb3a7a05b7c32ec1b3bf47cd261d25a164f7df018e2dc94a5e720565ca7d2fd58edbb39899a481cbf7aacc50f01c97cd73bd815ca7dc95938b
7
+ data.tar.gz: a6fb31c6d7835f380670ee3be74952786653bf3a3b5f7712c0ac4dd9526b8e2f9564c127d71fe16c12cebbdccf0cd4df9cbcd8a3d243c327323572baa7ebde4a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- quince (0.4.0)
4
+ quince (0.4.1)
5
5
  oj (~> 3.13)
6
6
  typed_struct (>= 0.1.4)
7
7
 
@@ -19,6 +19,7 @@ rerender: <%= rerender.to_json %>,
19
19
  `<%= rerender&.dig(:selector)&.to_s || selector %>`,
20
20
  <% if mode = rerender&.dig(:mode) %>`<%= mode.to_s %>`<% end %>
21
21
  );
22
+ <% unless push_params_state == "null" %>Q.ps(<%= push_params_state %>);<% end %>
22
23
  <% if value.debounce_ms&.positive? %>
23
24
  }, <%= value.debounce_ms %>); window[`<%= fn_name %>`](p)
24
25
  <% end %>
@@ -10,6 +10,7 @@ module Quince
10
10
  if: nil,
11
11
  debugger: false,
12
12
  rerender: nil,
13
+ push_params_state: nil,
13
14
  }.freeze
14
15
 
15
16
  def callback(method_name, **opts)
@@ -50,6 +50,7 @@ module Quince
50
50
  fn_name = "_Q_#{key}_#{receiver.send(:__id)}"
51
51
  rerender = value.rerender
52
52
  state_container = html_self_selector
53
+ push_params_state = value.push_params_state.to_json
53
54
  code = CALLBACK_ERB_INSTANCE.result(binding)
54
55
  return %Q{#{key}="#{CGI.escape_html(code)}" data-qu-#{key}-state="#{CGI.escapeHTML(internal)}"}
55
56
  when true
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Quince
4
- VERSION = "0.4.0"
4
+ VERSION = "0.4.1"
5
5
  end
data/scripts.js CHANGED
@@ -72,4 +72,12 @@ const Q = {
72
72
  });
73
73
  };
74
74
  },
75
+ ps: (stateObj) => {
76
+ const base = location.origin + location.pathname;
77
+ const url = new URL(base);
78
+ for (const p in stateObj) {
79
+ url.searchParams.append(p, stateObj[p]);
80
+ };
81
+ window.history.pushState({}, document.title, url);
82
+ }
75
83
  };
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quince
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joseph Johansen