Module: Overlastic::OverlaysHelper
- Defined in:
- app/helpers/overlastic/overlays_helper.rb
Instance Method Summary collapse
- #current_overlay_name ⇒ Object
- #overlastic_tag(id: :overlay1) ⇒ Object
- #overlay_name_from(key) ⇒ Object
- #overlay_number_from(name) ⇒ Object
- #render_overlay(locals = {}, &block) ⇒ Object
- #valid_overlay_name?(name) ⇒ Boolean
Instance Method Details
#current_overlay_name ⇒ Object
18 19 20 |
# File 'app/helpers/overlastic/overlays_helper.rb', line 18 def request.headers["Overlay-Name"]&.to_sym end |
#overlastic_tag(id: :overlay1) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'app/helpers/overlastic/overlays_helper.rb', line 2 def overlastic_tag(id: :overlay1) if block_given? type = request.headers["Overlay-Type"] target = request.headers["Overlay-Target"] || Overlastic.configuration.default_target args = request.headers["Overlay-Args"] tag.overlastic id: || id, src: request.url, data: { overlay_type: type, overlay_target: target, overlay_args: args } do yield concat tag.overlastic(id: (:next), data: { overlay_target: Overlastic.configuration.default_target }) end else tag.overlastic id: id, data: { overlay_target: Overlastic.configuration.default_target } end end |
#overlay_name_from(key) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/helpers/overlastic/overlays_helper.rb', line 26 def (key) current_number = case key when :first, :all :overlay1 when :last, :current when :previous :"overlay#{current_number - 1}" when :next :"overlay#{current_number + 1}" else key end end |
#overlay_number_from(name) ⇒ Object
22 23 24 |
# File 'app/helpers/overlastic/overlays_helper.rb', line 22 def (name) name.to_s.scan(/\d+/)&.first.to_i end |
#render_overlay(locals = {}, &block) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 |
# File 'app/helpers/overlastic/overlays_helper.rb', line 47 def (locals = {}, &block) string = capture(&block) type = request.headers["Overlay-Type"] || Overlastic.configuration. args_header = request.headers["Overlay-Args"] = JSON.parse(Base64.urlsafe_decode64(request.headers["Overlay-Args"])) if args_header.present? locals.merge! .to_h.symbolize_keys overlastic_tag do concat render(Overlastic.configuration.public_send(:"#{type}_overlay_view_path"), locals) { string } end end |
#valid_overlay_name?(name) ⇒ Boolean
43 44 45 |
# File 'app/helpers/overlastic/overlays_helper.rb', line 43 def (name) (name).positive? end |