overlastic 0.10.1 → 0.11.0

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: bdf65721b705fb8f823c14f57f128323ea19cf09809928483247d57b05f0e276
4
- data.tar.gz: a9929402976455d1a1cd6f50accb1300d4e6bc511be565b0efa84ce476e4f775
3
+ metadata.gz: 43db3c1020ad55f7f3e3583c87619fb3cd108ae75c24aee4d00047981faa6fa5
4
+ data.tar.gz: cda4c45a9ba38585749bfdd34f1d457628e6f4efeb4af30ea257a501fcf653a2
5
5
  SHA512:
6
- metadata.gz: 264f8ad45eed1df4147792806f6c8ffaf342d4d1b170e16d235ea822a82bce4409e23211d2dfa535236f3c4c1f1b37fa2095054a5eef9ddd0f1a02f3b15cacad
7
- data.tar.gz: e00ccdc033b896334d055d6f94dff5a3fc4082e89a38fe53fc0c94028546b8dc205912b4375930c768ed0eed4ee9002d17f66e65f0d344800902c8928cc935f8
6
+ metadata.gz: 6991e4bf107dcb88b60623d8dc6ba7b7cbabc42b26a33d834196bb6d85f276fe2df13ce61c7f2bfe8f02537ab2bb9e1b1bc87d0ba3f05fea06890d9ee862ab62
7
+ data.tar.gz: 75195d9d488ddba1253fa5406f0b89d50836070cb68327f3c046a4bb5828eafe40af165b8b1e2741de5eb3659bb0f751f761ada2d39f250596e3ade4d1cf32d1
data/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  <h3 align="center">Fantastically easy overlays using <a href="https://hotwired.dev/" target="_blank">Hotwire</a>.</h3>
10
10
 
11
11
  <p align="center">
12
- <img alt="Build" src="https://img.shields.io/github/workflow/status/martinzamuner/overlastic/CI">
12
+ <img alt="Build" src="https://img.shields.io/github/actions/workflow/status/martinzamuner/overlastic/ci.yml?branch=main">
13
13
  <img alt="Gem" src="https://img.shields.io/gem/v/overlastic">
14
14
  <img alt="rails version" src="https://img.shields.io/badge/rails-%3E%3D%206.1.0-informational">
15
15
  <img alt="turbo-rails version" src="https://img.shields.io/badge/turbo--rails-%3E%3D%201.3.0-informational">
@@ -4,33 +4,11 @@ module Overlastic::Concerns::OverlayHandling
4
4
  included do
5
5
  before_action :add_overlay_variant
6
6
 
7
- private
8
-
9
- def add_overlay_variant
10
- request.variant = :overlay if helpers.current_overlay_name.present?
11
- end
12
-
13
- def close_overlay(key = :last, **options)
14
- overlay_name = helpers.overlay_name_from(key) || :overlay1
15
-
16
- # In case a Turbo Stream is appended which renders new overlay links, they should be generated
17
- # relative to the foremost overlay still open after closing the requested overlays.
18
- request.headers["Overlay-Name"] = :"overlay#{helpers.overlay_number_from(overlay_name) - 1}"
19
-
20
- options.filter { |key, _| key.in? self.class._flash_types }.each { |key, value| flash.now[key] = value }
21
-
22
- if block_given?
23
- render overlay: overlay_name, html: helpers.overlastic_tag(id: overlay_name), append_turbo_stream: yield
24
- else
25
- render overlay: overlay_name, html: helpers.overlastic_tag(id: overlay_name)
26
- end
27
- end
28
-
29
7
  def render(*args, **options, &block)
30
8
  # Force render of overlays without an initiator
31
9
  request.headers["Overlay-Target"] ||= options.delete(:overlay_target)
32
10
  request.headers["Overlay-Type"] ||= options.delete(:overlay_type)
33
- request.headers["Overlay-Args"] ||= Base64.encode64(options.delete(:overlay_args).to_json) if options.key?(:overlay_args)
11
+ request.headers["Overlay-Args"] ||= Base64.urlsafe_encode64(options.delete(:overlay_args).to_json) if options.key?(:overlay_args)
34
12
 
35
13
  # If renderable content other than HTML is passed we should avoid returning a stream
36
14
  avoid_stream = _renderers.excluding(:html).intersection(options.keys).present?
@@ -113,5 +91,27 @@ module Overlastic::Concerns::OverlayHandling
113
91
  super
114
92
  end
115
93
  end
94
+
95
+ private
96
+
97
+ def add_overlay_variant
98
+ request.variant = :overlay if helpers.current_overlay_name.present?
99
+ end
100
+
101
+ def close_overlay(key = :last, **options)
102
+ overlay_name = helpers.overlay_name_from(key) || :overlay1
103
+
104
+ # In case a Turbo Stream is appended which renders new overlay links, they should be generated
105
+ # relative to the foremost overlay still open after closing the requested overlays.
106
+ request.headers["Overlay-Name"] = :"overlay#{helpers.overlay_number_from(overlay_name) - 1}"
107
+
108
+ options.filter { |key, _| key.in? self.class._flash_types }.each { |key, value| flash.now[key] = value }
109
+
110
+ if block_given?
111
+ render overlay: overlay_name, html: helpers.overlastic_tag(id: overlay_name), append_turbo_stream: yield
112
+ else
113
+ render overlay: overlay_name, html: helpers.overlastic_tag(id: overlay_name)
114
+ end
115
+ end
116
116
  end
117
117
  end
@@ -20,7 +20,7 @@ module Overlastic::NavigationHelper
20
20
  options["data"][:overlay_target] = target if target.present?
21
21
 
22
22
  args = options.delete("overlay_args")
23
- options["data"][:overlay_args] = Base64.encode64(args.to_json) if args.present?
23
+ options["data"][:overlay_args] = Base64.urlsafe_encode64(args.to_json) if args.present?
24
24
 
25
25
  options["target"] = :_blank
26
26
 
@@ -42,7 +42,7 @@ module Overlastic::NavigationHelper
42
42
  html_options["data"][:overlay_target] = target if target.present?
43
43
 
44
44
  args = html_options.delete("overlay_args")
45
- html_options["data"][:overlay_args] = Base64.encode64(args.to_json) if args.present?
45
+ html_options["data"][:overlay_args] = Base64.urlsafe_encode64(args.to_json) if args.present?
46
46
 
47
47
  html_options["target"] = :_blank
48
48
 
@@ -48,7 +48,7 @@ module Overlastic::OverlaysHelper
48
48
  string = capture(&block)
49
49
  type = request.headers["Overlay-Type"] || Overlastic.configuration.default_overlay
50
50
  args_header = request.headers["Overlay-Args"]
51
- overlay_args = JSON.parse(Base64.decode64(request.headers["Overlay-Args"])) if args_header.present?
51
+ overlay_args = JSON.parse(Base64.urlsafe_decode64(request.headers["Overlay-Args"])) if args_header.present?
52
52
  locals.merge! overlay_args.to_h.symbolize_keys
53
53
 
54
54
  overlastic_tag do
@@ -1,3 +1,3 @@
1
1
  module Overlastic
2
- VERSION = "0.10.1"
2
+ VERSION = "0.11.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: overlastic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Zamuner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-04 00:00:00.000000000 Z
11
+ date: 2023-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -104,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0'
106
106
  requirements: []
107
- rubygems_version: 3.2.22
107
+ rubygems_version: 3.4.10
108
108
  signing_key:
109
109
  specification_version: 4
110
110
  summary: Fantastically easy overlays using Hotwire. Bring your dialog modals and slide-out