Class: FlashMessenger::Messages::Base
- Inherits:
-
Object
- Object
- FlashMessenger::Messages::Base
show all
- Extended by:
- ActiveModel::Naming
- Includes:
- ActiveModel::AttributeMethods, ActiveModel::Model, ActiveModel::Serializers::JSON
- Defined in:
- lib/flash_messenger/messages/base.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(level, translation, **i18n_params) ⇒ Base
Returns a new instance of Base.
11
12
13
|
# File 'lib/flash_messenger/messages/base.rb', line 11
def initialize(level, translation, **i18n_params)
@i18n_params, @level, @translation = i18n_params, level, translation
end
|
Instance Attribute Details
#i18n_params ⇒ Object
Normalize hash and force :raise so we can catch exceptions
16
17
18
|
# File 'lib/flash_messenger/messages/base.rb', line 16
def i18n_params
@i18n_params
end
|
#level ⇒ Object
Returns the value of attribute level.
9
10
11
|
# File 'lib/flash_messenger/messages/base.rb', line 9
def level
@level
end
|
#translation ⇒ Object
Returns the value of attribute translation.
9
10
11
|
# File 'lib/flash_messenger/messages/base.rb', line 9
def translation
@translation
end
|
Class Method Details
.alert(message, **i18n_params) ⇒ Object
103
104
105
|
# File 'lib/flash_messenger/messages/base.rb', line 103
def self.alert(message, **i18n_params)
new(:alert, message, **i18n_params)
end
|
.class_name ⇒ Object
123
124
125
|
# File 'lib/flash_messenger/messages/base.rb', line 123
def self.class_name
model_name.element
end
|
.error(message, **i18n_params) ⇒ Object
107
108
109
|
# File 'lib/flash_messenger/messages/base.rb', line 107
def self.error(message, **i18n_params)
new(:error, message, **i18n_params)
end
|
.from_session(json) ⇒ Object
143
144
145
|
# 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) ⇒ Object
111
112
113
|
# File 'lib/flash_messenger/messages/base.rb', line 111
def self.info(message, **i18n_params)
new(:info, message, **i18n_params)
end
|
.notice(message, **i18n_params) ⇒ Object
115
116
117
|
# File 'lib/flash_messenger/messages/base.rb', line 115
def self.notice(message, **i18n_params)
new(:notice, message, **i18n_params)
end
|
Instance Method Details
#<=>(other) ⇒ Object
Overridden Comparison Operators
46
47
48
49
50
51
52
53
54
|
# 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
|
#alert? ⇒ Boolean
Message Helpers (by level)
87
88
89
|
# File 'lib/flash_messenger/messages/base.rb', line 87
def alert?
@level == :alert
end
|
#attributes ⇒ Object
161
162
163
|
# File 'lib/flash_messenger/messages/base.rb', line 161
def attributes
instance_values
end
|
#attributes=(hash) ⇒ Object
155
156
157
158
159
|
# File 'lib/flash_messenger/messages/base.rb', line 155
def attributes=(hash)
hash.each do |key, value|
send("#{key}=", value)
end
end
|
#class_name ⇒ Object
119
120
121
|
# File 'lib/flash_messenger/messages/base.rb', line 119
def class_name
self.class.model_name.element
end
|
#eql?(other) ⇒ Boolean
Also known as:
==
56
57
58
|
# File 'lib/flash_messenger/messages/base.rb', line 56
def eql?(other)
(self.<=> other) == 0
end
|
#error? ⇒ Boolean
91
92
93
|
# File 'lib/flash_messenger/messages/base.rb', line 91
def error?
@level == :error
end
|
#from_json(json, include_root = include_root_in_json) ⇒ Object
131
132
133
|
# 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
|
#info? ⇒ Boolean
95
96
97
|
# File 'lib/flash_messenger/messages/base.rb', line 95
def info?
@level == :info
end
|
#match?(other) ⇒ Boolean
Also known as:
match
60
61
62
63
64
65
66
67
68
69
70
|
# 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
|
#message ⇒ Object
29
30
31
32
33
34
35
36
|
# 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
end
|
#notice? ⇒ Boolean
99
100
101
|
# File 'lib/flash_messenger/messages/base.rb', line 99
def notice?
@level == :notice
end
|
#persistent? ⇒ Boolean
Message Interface Definitions
79
80
81
|
# File 'lib/flash_messenger/messages/base.rb', line 79
def persistent?
raise NotImplementedError
end
|
#serializable_hash(options = {}) ⇒ Object
135
136
137
|
# File 'lib/flash_messenger/messages/base.rb', line 135
def serializable_hash(options = {})
super.merge({ 'class' => self.class_name })
end
|
#to_s ⇒ Object
38
39
40
|
# File 'lib/flash_messenger/messages/base.rb', line 38
def to_s
self.message.strip
end
|
#to_session ⇒ Object
139
140
141
|
# File 'lib/flash_messenger/messages/base.rb', line 139
def to_session
serializable_hash.to_json
end
|