Class: Moneta::Transforms::BEncode

Inherits:
Moneta::Transform::Serializer show all
Defined in:
lib/moneta/transforms/bencode.rb

Overview

Serializes objects using the bencode gem

Instance Method Summary collapse

Methods inherited from Moneta::Transform::Serializer

#decodable?, #decode, delegate_to, #encode, #initialize

Methods inherited from Moneta::Transform

#decodable?, #decode, delegate_to, #encode, #initialize, #method_missing, #respond_to_missing?

Constructor Details

This class inherits a constructor from Moneta::Transform::Serializer

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Moneta::Transform

Instance Method Details

#deserialize(value) ⇒ Object



13
14
15
16
17
18
# File 'lib/moneta/transforms/bencode.rb', line 13

def deserialize(value)
  # BEncode needs a mutable string
  ::BEncode.load(value.dup).tap do |deserialized_value|
    raise "::BEncode.load returned nil" if deserialized_value == nil
  end
end

#serialize(value) ⇒ Object

This method is abstract.

All Subclasses should implement this method

This method will be called by Moneta::Transform::Serializer#encode except when the value being encoded is a string, and the object is in serialize_unless_string mode.

Parameters:

  • value (Object)

    the thing to encode

Returns:

  • (Object)


8
9
10
# File 'lib/moneta/transforms/bencode.rb', line 8

def serialize(value)
  ::BEncode.dump(value)
end