Class: Dynflow::CoordinatorAdapters::Sequel

Inherits:
Abstract
  • Object
show all
Defined in:
lib/dynflow/coordinator_adapters/sequel.rb

Instance Method Summary collapse

Constructor Details

#initialize(world) ⇒ Sequel

Returns a new instance of Sequel.



6
7
8
9
10
# File 'lib/dynflow/coordinator_adapters/sequel.rb', line 6

def initialize(world)
  super
  @sequel_adapter = world.persistence.adapter
  Type! @sequel_adapter, PersistenceAdapters::Sequel
end

Instance Method Details

#create_record(record) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/dynflow/coordinator_adapters/sequel.rb', line 12

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

#delete_record(record) ⇒ Object



26
27
28
# File 'lib/dynflow/coordinator_adapters/sequel.rb', line 26

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

#find_execution_plans(filter_options) ⇒ Object



34
35
36
# File 'lib/dynflow/coordinator_adapters/sequel.rb', line 34

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

#find_records(filter_options) ⇒ Object



30
31
32
# File 'lib/dynflow/coordinator_adapters/sequel.rb', line 30

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

#update_record(record) ⇒ Object



22
23
24
# File 'lib/dynflow/coordinator_adapters/sequel.rb', line 22

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