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) messages(flash).map do |message| alert_element(*message) end.join.html_safe end
Private Instance Methods
alert_classes(type)
click to toggle source
# File lib/flash_rails_messages/base.rb, line 49 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 26 def alert_element(type, message) return unless message.respond_to?(:html_safe) 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 43 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 66 def alert_type_classes {} end
close_element()
click to toggle source
# File lib/flash_rails_messages/base.rb, line 37 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 70 def custom_alert_classes; end
default_alert_classes()
click to toggle source
# File lib/flash_rails_messages/base.rb, line 62 def default_alert_classes 'alert' end
default_alert_options()
click to toggle source
# File lib/flash_rails_messages/base.rb, line 58 def default_alert_options {} end
messages(flash)
click to toggle source
# File lib/flash_rails_messages/base.rb, line 20 def messages(flash) Hash[flash] .symbolize_keys .keep_if { |key, _| alert_type_classes.include?(key) } end