class FlashRailsMessages::Base

Attributes

options[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/flash_rails_messages/base.rb, line 8
def initialize(options = {})
  @options = options
end

Public Instance Methods

render(flash) click to toggle source
# File lib/flash_rails_messages/base.rb, line 12
def render(flash)
  flash = Hash[flash].symbolize_keys
  flash.map { |message| alert_element(*message) }.join.html_safe
end

Private Instance Methods

alert_classes(type) click to toggle source
# File lib/flash_rails_messages/base.rb, line 40
def alert_classes(type)
  [
    default_alert_classes,
    alert_type_classes[type],
    custom_alert_classes,
    options[:class]
  ].compact.join(' ').strip
end
alert_element(type, message) click to toggle source
# File lib/flash_rails_messages/base.rb, line 19
def alert_element(type, message)
  content_tag :div, alert_options(type) do
    content = ActiveSupport::SafeBuffer.new
    content += close_element if options.fetch(:dismissible, false)
    content += message.html_safe
    content
  end
end
alert_options(type) click to toggle source
# File lib/flash_rails_messages/base.rb, line 34
def alert_options(type)
  default_alert_options
    .merge(options.except(:dismissible))
    .merge(class: alert_classes(type))
end
alert_type_classes() click to toggle source
# File lib/flash_rails_messages/base.rb, line 57
def alert_type_classes
  {}
end
close_element() click to toggle source
# File lib/flash_rails_messages/base.rb, line 28
def close_element
  content_tag :a, class: 'close', href: '#' do
    '×'.html_safe
  end
end
custom_alert_classes() click to toggle source
# File lib/flash_rails_messages/base.rb, line 61
def custom_alert_classes
end
default_alert_classes() click to toggle source
# File lib/flash_rails_messages/base.rb, line 53
def default_alert_classes
  'alert'
end
default_alert_options() click to toggle source
# File lib/flash_rails_messages/base.rb, line 49
def default_alert_options
  {}
end