Module: ImageFilterDsl::Serializers::Json

Extended by:
Json
Includes:
Common
Included in:
Json
Defined in:
lib/image_filter_dsl/serializers/json.rb

Overview

Provides serialization/deserialization to/from JSON using intermediate serializer

Instance Method Summary collapse

Methods included from Common

#fix_hash, #normalize_sym

Instance Method Details

#deserialize(data) ⇒ Hash

Deserialize JSON kernel to intermediate format

Parameters:

  • data (String)

    JSON kernel data

Returns:

  • (Hash)

    Intermediate format of kernel data



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/image_filter_dsl/serializers/json.rb', line 30

def deserialize(data)
    data = JSON.load(data)
    data = fix_hash(data,[:inputs,:outputs,:instructions])
    data[:instructions] = data[:instructions].map {|i| fix_hash(i,[:op,:in,:out])}
    
    {
        inputs: data[:inputs],
        outputs: data[:outputs],
        instructions: data[:instructions]
    }
end

#serialize(kernel) ⇒ String

Serialize kernel to JSON string

Parameters:

  • kernel (Hash)

    Kernel in intermediate format

Returns:

  • (String)

    JSON serialized version of kernel



18
19
20
21
22
23
24
25
# File 'lib/image_filter_dsl/serializers/json.rb', line 18

def serialize(kernel)
    {
        header: ImageFilterDsl::Binary::Struct::HEADER_VALUES,
        inputs: kernel[:inputs],
        outputs: kernel[:outputs],
        instructions: kernel[:instructions]
    }.to_json
end