module Growlyflash::ControllerAdditions
Public Class Methods
included(base)
click to toggle source
# File lib/growlyflash/controller_additions.rb, line 3 def self.included(base) base.module_eval do extend ClassMethods if respond_to?(:helper_method) helper_method :growlyflash_static_notices, :growlyhash, :growlyflash_tag end end end
Protected Instance Methods
flash_to_headers()
click to toggle source
Dumps available messages to headers and discards them to prevent appear it again after refreshing a page
# File lib/growlyflash/controller_additions.rb, line 28 def flash_to_headers if request.xhr? && growlyhash(true).size > 0 response.headers['X-Message'] = URI.escape(growlyhash.to_json) growlyhash.each_key { |k| flash.discard(k) } end end
growlyflash_static_notices(js_var = 'window.flashes')
click to toggle source
View helper method which renders flash messages to js variable if they weren't dumped to headers with XHR request
# File lib/growlyflash/controller_additions.rb, line 37 def growlyflash_static_notices(js_var = 'window.flashes') return if flash.empty? script = "#{js_var} = #{growlyhash.to_json.html_safe};".freeze view_context.javascript_tag(script, defer: 'defer') end
growlyflash_tag()
click to toggle source
View helper which render a tag with flashes messages in data attribute.
# File lib/growlyflash/controller_additions.rb, line 44 def growlyflash_tag return if flash.empty? view_context.tag( :div, id: 'growlyflash-tag', 'data-flashes': growlyhash.to_json.html_safe ) end
growlyhash(force = false)
click to toggle source
Hash with available growl flash messages which contains a string object.
# File lib/growlyflash/controller_additions.rb, line 54 def growlyhash(force = false) @growlyhash = nil if force @growlyhash ||= flash.to_hash.select { |k, v| v.is_a? String } end