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

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_argsObject



178
179
180
# File 'lib/announcer/mixins/serializable.rb', line 178

def _serializable_args
  self.class._serializable_args
end

#_serializable_packageObject



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

#serializeObject



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