Module: ImageFilterDsl::Serializers::Intermediate
- Extended by:
- Intermediate
- Includes:
- Common
- Included in:
- Intermediate
- Defined in:
- lib/image_filter_dsl/serializers/intermediate.rb
Overview
Provides serialization/deserialization for Kernels to an intermediate format representing kernel as hash. Used by other serializers as intermediate between serializing from and deserializing to kernels
Instance Method Summary collapse
-
#from_kernel(kernel) ⇒ Hash
Convert kernel to intermediate hash struct.
-
#to_kernel(data) ⇒ ImageFilterDsl::Dsl::Kernel
Convert intermediate kernel hash to kernel object.
Methods included from Common
Instance Method Details
#from_kernel(kernel) ⇒ Hash
Convert kernel to intermediate hash struct
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/image_filter_dsl/serializers/intermediate.rb', line 21 def from_kernel(kernel) data = { inputs: kernel.inputs, outputs: kernel.outputs } data[:instructions] = kernel.instructions.map do |i| {op: i.op, in: i.inputs, out: i.out} end data end |
#to_kernel(data) ⇒ ImageFilterDsl::Dsl::Kernel
Convert intermediate kernel hash to kernel object
36 37 38 39 40 41 42 43 44 |
# File 'lib/image_filter_dsl/serializers/intermediate.rb', line 36 def to_kernel(data) ins = data[:instructions].map{|i| fix_instruction_symbols(i) } filt = ImageFilterDsl::Dsl::Filter.define(data[:inputs],data[:outputs]) do ins.each do |i| send(i[:op], i[:in], i[:out]) end end return filt end |