./lib/lux/response/lib/flash.rb in lux-fw-0.5.37 vs ./lib/lux/response/lib/flash.rb in lux-fw-0.6.2

- old
+ new

@@ -1,49 +1,64 @@ -# frozen_string_literal: true +# flash.info = 'Test' +# flash.clear -> get hash +# flash.clear_for_js -> get JS optimized hash -class Lux::Response::Flash +module Lux + class Response + class Flash + # flash.info 'messsage ...' + # flash.info = 'messsage ...' + def self.add_type name + define_method(name) { |message| add name, message } + eval "alias #{name}= #{name}" + end - # flash.info 'messsage ...' - # flash.info = 'messsage ...' - def self.add_type name - define_method(name) { |message| add name, message } - eval "alias #{name}= #{name}" - end + add_type :info + add_type :error + add_type :warning - add_type :info - add_type :error - add_type :warning + ### - ### + def initialize h = nil + @msg = (h || {}).to_hwia + end - def initialize h=nil - @msg = h || {} - end + def clear + to_h.tap { @msg = {} } + end - def clear - to_h.tap { @msg = {} } - end + def present? + @msg.keys.first + end - def to_h - @msg - end + def empty? + !present? + end - # clears white space, replaces quotes - def clear_for_js - {}.tap do |msg| - clear.each do |k, v| - msg[k] = v.join(', ').gsub(/\s+/, ' ') + def to_h + @msg end - end - end - private + # clears white space, replaces quotes + def clear_for_js + {}.tap do |msg| + clear.each do |k, v| + msg[k] = v.join(', ').gsub(/\s+/, ' ') + end + end + end - def add name, message - @msg[name] ||= [] + private - return if @msg[name].last == message - return if @msg[name].length > 4 + def add name, message + return if message.blank? - @msg[name].push message.to_s + @msg[name] ||= [] + + return if @msg[name].last == message + return if @msg[name].length > 4 + + @msg[name].push message.to_s + end + end end end