Sha256: 387c56434b123295a272ff9d0234a7e9785729f9c47bd9ca794adae48050ad31

Contents?: true

Size: 1.23 KB

Versions: 3

Compression:

Stored size: 1.23 KB

Contents

module FlashMessages
  module ControllerMethods
    TYPES = [:success, :notice, :warning, :error]
    
    TYPES.each do |type|
      define_method(type) do |msg|
        flash[type] = msg
      end
      
      define_method("#{type}_now") do |msg|
        flash.now[type] = msg
      end
    end
  end

  module Display
#    def flash_messages
#      returning html = String.new do
#        flash.each do |css_class, message|
#          html << content_tag(:div, content_tag(:div, nil, :class => :icon) + message, :class => css_class)
#        end
#      end
#    end
    
  FLASH_NOTICE_KEYS = [:error, :warning, :notice, :success]

  def flash_messages
    return unless messages = flash.keys.select{|k| FLASH_NOTICE_KEYS.include?(k)}
    formatted_messages = messages.map do |type|      
      content_tag(:div, nil, :class => type.to_s) do
        message_for_item(flash[type], flash["#{type}_item".to_sym])
      end
    end
    formatted_messages.join
  end

    def message_for_item(message, item = nil)
      if item.is_a?(Array)
        content_tag(:div, nil, :class => :icon) + message % link_to(*item)
      else
        content_tag(:div, nil, :class => :icon) + message % item
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
compass-jquery-plugin-0.3.0.beta.14 lib/jquery/flash_messages.rb
compass-jquery-plugin-0.3.0.beta.13 lib/jquery/flash_messages.rb
compass-jquery-plugin-0.3.0.beta.10 lib/jquery/flash_messages.rb