Sha256: cdec177f8000906cb7304ed006859234b626ce123511e89c2726fd5f948a6f7f

Contents?: true

Size: 1.06 KB

Versions: 10

Compression:

Stored size: 1.06 KB

Contents

module Dynflow
  module CoordinatorAdapters
    class Sequel < Abstract
      def initialize(world)
        super
        @sequel_adapter = world.persistence.adapter
        Type! @sequel_adapter, PersistenceAdapters::Sequel
      end

      def create_record(record)
        @sequel_adapter.insert_coordinator_record(record.to_hash)
      rescue Errors::PersistenceError => e
        if e.cause.is_a? ::Sequel::UniqueConstraintViolation
          raise Coordinator::DuplicateRecordError.new(record)
        else
          raise e
        end
      end

      def update_record(record)
        @sequel_adapter.update_coordinator_record(record.class.name, record.id, record.to_hash)
      end

      def delete_record(record)
        @sequel_adapter.delete_coordinator_record(record.class.name, record.id)
      end

      def find_records(filter_options)
        @sequel_adapter.find_coordinator_records(filters: filter_options)
      end

      def find_execution_plans(filter_options)
        @sequel_adapter.find_execution_plans(filters: filter_options)
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
dynflow-1.3.0 lib/dynflow/coordinator_adapters/sequel.rb
dynflow-1.2.3 lib/dynflow/coordinator_adapters/sequel.rb
dynflow-1.2.2 lib/dynflow/coordinator_adapters/sequel.rb
dynflow-1.2.1 lib/dynflow/coordinator_adapters/sequel.rb
dynflow-1.2.0 lib/dynflow/coordinator_adapters/sequel.rb
dynflow-1.2.0.pre1 lib/dynflow/coordinator_adapters/sequel.rb
dynflow-1.1.6 lib/dynflow/coordinator_adapters/sequel.rb
dynflow-1.1.5 lib/dynflow/coordinator_adapters/sequel.rb
dynflow-1.1.4 lib/dynflow/coordinator_adapters/sequel.rb
dynflow-1.1.3 lib/dynflow/coordinator_adapters/sequel.rb