Class: BootstrapBuilders::Flash

Inherits:
Object
  • Object
show all
Defined in:
lib/bootstrap_builders/flash.rb

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ Flash

Returns a new instance of Flash.



2
3
4
5
6
# File 'lib/bootstrap_builders/flash.rb', line 2

def initialize(args)
  @class = args[:class]
  @alert_types = [:success, :info, :warning, :danger]
  @context = args.fetch(:context)
end

Instance Method Details

#htmlObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/bootstrap_builders/flash.rb', line 8

def html
  flash_messages = []
  @context.flash.each do |type, message|
    # Skip empty messages, e.g. for devise messages set to nothing in a locale file.
    next if message.blank?

    type = type.to_sym
    type = :success if type == :notice
    type = :danger  if type == :alert
    type = :danger  if type == :error
    next unless @alert_types.include?(type)

    close_button = @context.(:button, @context.raw("×"), type: "button", class: "close", "data-dismiss" => "alert")

    Array(message).each do |msg|
      text = @context.(:div, close_button + msg, class: classes(type))
      flash_messages << text if msg
    end
  end
  @context.flash.clear
  flash_messages.join("\n").html_safe # rubocop:disable Rails/OutputSafety
end