class Synapse::ProcessManager::Mongo::ProcessDocument

Mongo document that represents a process instance

Public Instance Methods

from_hash(hash) click to toggle source

@param [Hash] hash @return [ProcessDocument]

# File lib/synapse/process_manager/mongo/process_document.rb, line 31
def from_hash(hash)
  hash.symbolize_keys!

  @id = hash.fetch :_id
  @serialized = hash.fetch :serialized
  @type = hash.fetch :type
  @correlations = hash.fetch :correlations

  self
end
from_process(process, serializer) click to toggle source

@param [Process] process @param [Serializer] serializer @return [ProcessDocument]

# File lib/synapse/process_manager/mongo/process_document.rb, line 9
def from_process(process, serializer)
  serialized_process = serializer.serialize process, String

  @id = process.id
  @serialized = serialized_process.content
  @type = serialized_process.type.name
  @correlations = Array.new

  process.correlations.each do |correlation|
    correlation_hash = {
      key: correlation.key,
      value: correlation.value
    }

    @correlations.push correlation_hash
  end

  self
end
to_hash() click to toggle source

@return [Hash]

# File lib/synapse/process_manager/mongo/process_document.rb, line 43
def to_hash
  { _id: @id,
    serialized: @serialized,
    type: @type,
    correlations: @correlations }
end
to_process(serializer) click to toggle source

@param [Serializer] serializer @return [Process]

# File lib/synapse/process_manager/mongo/process_document.rb, line 52
def to_process(serializer)
  serialized_type = Serialization::SerializedType.new @type, nil
  serialized_object = Serialization::SerializedObject.new @serialized, String, serialized_type

  serializer.deserialize serialized_object
end