Class: RightScale::Serializer
- Defined in:
- lib/right_agent/serialize/serializer.rb
Overview
Cascade serializer supporting MessagePack and JSON serialization formats as well as secure serialization
Defined Under Namespace
Classes: SerializationError
Instance Attribute Summary collapse
-
#format ⇒ Object
readonly
(Symbol) Preferred serialization format.
Instance Method Summary collapse
-
#dump(packet, format = nil) ⇒ Object
Serialize object using preferred serializer Do not cascade.
-
#initialize(preferred_format = nil) ⇒ Serializer
constructor
Initialize the serializer Do not cascade serializers if :secure is specified.
-
#load(packet) ⇒ Object
Unserialize object using cascaded serializers with order chosen by peaking at first byte.
Constructor Details
#initialize(preferred_format = nil) ⇒ Serializer
Initialize the serializer Do not cascade serializers if :secure is specified
Parameters
- preferred_format(Symbol|String)
-
Preferred serialization format: :msgpack, :json, or :secure
Raises
- ArgumentError
-
If preferred format is not supported
69 70 71 72 73 |
# File 'lib/right_agent/serialize/serializer.rb', line 69 def initialize(preferred_format = nil) @format = (preferred_format ||= DEFAULT_FORMAT).to_sym raise ArgumentError, "Serializer format #{@format.inspect} not one of #{FORMATS.inspect}" unless FORMATS.include?(@format) @secure = (@format == :secure) end |
Instance Attribute Details
#format ⇒ Object (readonly)
(Symbol) Preferred serialization format
59 60 61 |
# File 'lib/right_agent/serialize/serializer.rb', line 59 def format @format end |
Instance Method Details
#dump(packet, format = nil) ⇒ Object
Serialize object using preferred serializer Do not cascade
Parameters
- packet(Object)
-
Object to be serialized
- format(Symbol)
-
Override preferred format
Return
- (String)
-
Serialized object
84 85 86 |
# File 'lib/right_agent/serialize/serializer.rb', line 84 def dump(packet, format = nil) cascade_serializers(:dump, packet, [@secure ? SecureSerializer : SERIALIZERS[format || @format]]) end |
#load(packet) ⇒ Object
Unserialize object using cascaded serializers with order chosen by peaking at first byte
Parameters
- packet(String)
-
Data representing serialized object
Return
- (Object)
-
Unserialized object
95 96 97 |
# File 'lib/right_agent/serialize/serializer.rb', line 95 def load(packet) cascade_serializers(:load, packet, @secure ? [SecureSerializer] : order_serializers(packet)) end |