Repository URL to install this package:
|
Version:
6.0.0 ▾
|
# frozen_string_literal: true
require 'sinatra/flash'
# Top-level documentation goes here...
module Sinatra
module Faculty
# Module for handling flash messages
module Flash
# Helpers for handling multiple flash messages at once
module Helpers
def flash_message(message, type: :info)
flash.next[:flash_messages] ||= []
flash.next[:flash_messages].push({ type:, message: })
end
def flash_messages
flash[:flash_messages] || []
end
end
def self.registered(app) # rubocop:disable Metrics/MethodLength
app.helpers Helpers
app.template :flash_messages do
%(
<% flash_messages.each do |message| %>
<div class="alert alert-<%= message[:type] %>">
<% lines = Array(message[:message]) %>
<%== lines.map { |msg| Erubi.h(msg) }.join('<br />') %>
</div>
<% end %>
)
end
end
end
end
register Sinatra::Faculty::Flash
end