Sha256: 4487efc7d4fd2a35f36b4d4f1537f6489cc7b8386a475c7ab42434472b0b7660

Contents?: true

Size: 887 Bytes

Versions: 2

Compression:

Stored size: 887 Bytes

Contents

require 'active_support/concern'

module Glow
  module Filter
    extend ActiveSupport::Concern
    included do
      after_action    :flash_to_headers
      class_attribute :glow_request_formats
    end

    def flash_to_headers
      return unless flash.any? && flash_to_headers?
      return if flash[:skip_glow] and flash.delete(:skip_glow)

      type, message = flash.first
      response.headers['X-Message'] = message.to_s.unpack('U*').map{ |i| "&##{i};" }.join
        response.headers['X-Message-Type'] = type.to_s
      flash.discard  # don't want the flash to appear when you reload page
    end

    def flash_to_headers?
      request.xhr? ||
      glow_request_formats? && glow_request_formats.include?(request.format.to_sym)
    end


    module ClassMethods
      def headerize_flash_for *formats
        self.glow_request_formats = formats
      end
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
glow-0.0.16 lib/glow/filter.rb
glow-0.0.15 lib/glow/filter.rb