./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