Module: ImageFilterDsl::Serialize

Extended by:
Serialize
Included in:
Serialize
Defined in:
lib/image_filter_dsl/serialize.rb

Overview

Module providing access to kernel serialization and deserialization functionality. Actual serialization/deserialization logic defined in modules within ‘Serializers`

Constant Summary collapse

INTERMEDIATE =

Intermediate serializer module

Serializers::Intermediate
SERIALIZERS =

Available serializers, mapping format symbol to module

{
    json: Serializers::Json,
    msgpack: Serializers::MsgPack,
    yaml: Serializers::Yaml
}
FORMATS =

Available serializer symbols

SERIALIZERS.keys

Instance Method Summary collapse

Instance Method Details

#from_kernel(kernel, format = nil) ⇒ Hash|String

Serialize kernel, optionally using intermediate step

Parameters:

  • kernel (ImageFilterDsl::Dsl::Kernel)

    Kernel

  • format (Symbol) (defaults to: nil)

    Format to serialize to from FORMATS, or ‘nil` to convert to intermediate

Returns:

  • (Hash|String)

    serialized kernel



42
43
44
45
46
47
48
49
50
# File 'lib/image_filter_dsl/serialize.rb', line 42

def from_kernel(kernel, format=nil)
    i = INTERMEDIATE.from_kernel(kernel)
    if format.nil?
        return i
    else
        m = SERIALIZERS[format]
        return m.send(:serialize, i)
    end
end

#to_kernel(data, format = nil) ⇒ Kernel

Deserialize to kernel, optionally using intermediate step

Parameters:

  • data (Hash|String)

    Serialized data

  • format (Symbol) (defaults to: nil)

    Format to convert from from FORMATS, or ‘nil` to convert from intermediate

Returns:

  • (Kernel)

    Kernal from deserialization



58
59
60
61
62
63
64
65
# File 'lib/image_filter_dsl/serialize.rb', line 58

def to_kernel(data,format=nil)
    if format.nil?
        return INTERMEDIATE.to_kernel(data)
    else
        i = SERIALIZERS[format].send(:deserialize, data)
        return INTERMEDIATE.to_kernel(i)
    end
end