Module: Announcer::Mixins::Serializable
- Included in:
- Event, Instance, Subscription
- Defined in:
- lib/announcer/mixins/serializable.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- MAGIC =
:SRLZ
- VERSION =
1
Class Method Summary collapse
Instance Method Summary collapse
- #_serializable_args ⇒ Object
- #_serializable_package ⇒ Object
- #_serialize_arg(arg) ⇒ Object
- #serialize ⇒ Object
Class Method Details
.included(base) ⇒ Object
9 10 11 |
# File 'lib/announcer/mixins/serializable.rb', line 9 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#_serializable_args ⇒ Object
178 179 180 |
# File 'lib/announcer/mixins/serializable.rb', line 178 def _serializable_args self.class._serializable_args end |
#_serializable_package ⇒ Object
164 165 166 167 |
# File 'lib/announcer/mixins/serializable.rb', line 164 def _serializable_package args = _serializable_args.map { |arg| _serialize_arg(send(arg)) } self.class._serializable_package(self.class, args) end |
#_serialize_arg(arg) ⇒ Object
169 170 171 172 173 174 175 176 |
# File 'lib/announcer/mixins/serializable.rb', line 169 def _serialize_arg(arg) case arg when Serializable arg._serializable_package else arg end end |
#serialize ⇒ Object
158 159 160 161 162 |
# File 'lib/announcer/mixins/serializable.rb', line 158 def serialize package = _serializable_package marshalled = self.class._serializable_marshal(package) self.class._serializable_encode(marshalled) end |