class FlashMessenger::Messages::Base

Attributes

i18n_params[RW]
level[RW]
translation[RW]

Public Class Methods

alert(message, **i18n_params) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 103
def self.alert(message, **i18n_params)
  new(:alert, message, **i18n_params)
end
class_name() click to toggle source
# File lib/flash_messenger/messages/base.rb, line 123
def self.class_name
  model_name.element
end
error(message, **i18n_params) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 107
def self.error(message, **i18n_params)
  new(:error, message, **i18n_params)
end
from_session(json) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 143
def self.from_session(json)
  new(:stub, nil).from_json(json, false)
end
info(message, **i18n_params) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 111
def self.info(message, **i18n_params)
  new(:info, message, **i18n_params)
end
new(level, translation, **i18n_params) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 11
def initialize(level, translation, **i18n_params)
  @i18n_params, @level, @translation = i18n_params, level, translation
end
notice(message, **i18n_params) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 115
def self.notice(message, **i18n_params)
  new(:notice, message, **i18n_params)
end

Public Instance Methods

<=>(other) click to toggle source

Overridden Comparison Operators

# File lib/flash_messenger/messages/base.rb, line 46
def <=>(other)
  return (self.message <=> other) if other.is_a?(String)
  return nil unless other.is_a?(self.class)
  my_values = [self.message, self.level, self.class_name]
  other_values = [other.message, other.level, self.class_name]
  (my_values <=> other_values)
rescue NoMethodError
  nil
end
==(other)
Alias for: eql?
alert?() click to toggle source

Message Helpers (by level)

# File lib/flash_messenger/messages/base.rb, line 87
def alert?
  @level == :alert
end
attributes() click to toggle source
# File lib/flash_messenger/messages/base.rb, line 161
def attributes
  instance_values
end
attributes=(hash) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 155
def attributes=(hash)
  hash.each do |key, value|
    send("#{key}=", value)
  end
end
class_name() click to toggle source
# File lib/flash_messenger/messages/base.rb, line 119
def class_name
  self.class.model_name.element
end
eql?(other) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 56
def eql?(other)
  (self.<=> other) == 0
end
Also aliased as: ==
error?() click to toggle source
# File lib/flash_messenger/messages/base.rb, line 91
def error?
  @level == :error
end
from_json(json, include_root=include_root_in_json) click to toggle source

Serialization Helpers

Calls superclass method
# File lib/flash_messenger/messages/base.rb, line 131
def from_json(json, include_root=include_root_in_json)
  super(JSON.parse(json).tap { |this| this.delete('class') }.to_json)
end
i18n_params=(params) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 21
def i18n_params=(params)
  @i18n_params = Hash[params.map{ |k, v| [k.to_sym, v] }]
end
info?() click to toggle source
# File lib/flash_messenger/messages/base.rb, line 95
def info?
  @level == :info
end
match(other)
Alias for: match?
match?(other) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 60
def match?(other)
  if other.is_a?(self.class)
    us = "#{self.class_name}, #{self.level}, #{self.message}"
    them = "#{self.class_name}, #{self.level}, #{self.message}"
    return us =~ them
  elsif other.is_a?(String)
    return self.to_s =~ %r(#{other})
  end

  nil
end
Also aliased as: match
message() click to toggle source
# File lib/flash_messenger/messages/base.rb, line 29
def message
  I18n.translate(self.translation, **self.i18n_params)
rescue I18n::MissingTranslationData
  return self.translation.join('.') if self.translation.is_a?(Array)
  self.translation
# rescue I18n::MissingInterpolationArgument
  # TODO
end
notice?() click to toggle source
# File lib/flash_messenger/messages/base.rb, line 99
def notice?
  @level == :notice
end
persistent?() click to toggle source

Message Interface Definitions

# File lib/flash_messenger/messages/base.rb, line 79
def persistent?
  raise NotImplementedError
end
serializable_hash(options = {}) click to toggle source
Calls superclass method
# File lib/flash_messenger/messages/base.rb, line 135
def serializable_hash(options = {})
  super.merge({ 'class' => self.class_name })
end
to_s() click to toggle source
# File lib/flash_messenger/messages/base.rb, line 38
def to_s
  self.message.strip
end
to_session() click to toggle source
# File lib/flash_messenger/messages/base.rb, line 139
def to_session
  serializable_hash.to_json
end

Private Instance Methods

attribute_contrived?(attr) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 167
def attribute_contrived?(attr)
  true
end
clear_attribute(attr) click to toggle source
# File lib/flash_messenger/messages/base.rb, line 171
def clear_attribute(attr)
  send("#{attr}=", nil)
end