Sha256: f0126b1e0ffcce0a349dd120221a0f48546a1e07cd2f9932f652797350130e67

Contents?: true

Size: 814 Bytes

Versions: 1

Compression:

Stored size: 814 Bytes

Contents

module FlashRailsMessages
  class Base
    include ActionView::Helpers::TagHelper
    include ActionView::Context

    def render(flash)
      flash = Hash[flash].symbolize_keys
      flash.map { |message| alert_element(*message) }.join.html_safe
    end

    private

    def alert_element(type, message)
      content_tag :div, class: alert_classes(type) do
        close_element + message.html_safe
      end
    end

    def close_element
      content_tag :a, class: 'close', href: '#' do
        '×'.html_safe
      end
    end

    def alert_classes(type)
      "#{default_alert_classes} #{alert_type_classes[type]} #{custom_alert_classes}".strip
    end

    def default_alert_classes
      'alert'
    end

    def alert_type_classes
      {}
    end

    def custom_alert_classes
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
flash_rails_messages-1.0.2 lib/flash_rails_messages/base.rb