lib/dirty_pipeline.rb in dirty_pipeline-0.7.1 vs lib/dirty_pipeline.rb in dirty_pipeline-0.8.1

- old
+ new

@@ -2,19 +2,55 @@ require "securerandom" module DirtyPipeline require_relative "dirty_pipeline/ext/camelcase.rb" require_relative "dirty_pipeline/status.rb" - require_relative "dirty_pipeline/storage.rb" require_relative "dirty_pipeline/worker.rb" require_relative "dirty_pipeline/transaction.rb" require_relative "dirty_pipeline/event.rb" - require_relative "dirty_pipeline/queue.rb" - require_relative "dirty_pipeline/railway.rb" + + # Redis + require_relative "dirty_pipeline/redis/railway.rb" + require_relative "dirty_pipeline/redis/storage.rb" + require_relative "dirty_pipeline/redis/queue.rb" + + # Postgres + require_relative "dirty_pipeline/pg.rb" + require_relative "dirty_pipeline/pg/railway.rb" + require_relative "dirty_pipeline/pg/storage.rb" + require_relative "dirty_pipeline/pg/queue.rb" + require_relative "dirty_pipeline/base.rb" require_relative "dirty_pipeline/transition.rb" # This method should yield raw Redis connection def self.with_redis fail NotImplementedError + end + + # This method should yield raw PG connection + def self.with_postgres + fail NotImplementedError + end + + # def self.with_postgres + # yield(ActiveRecord::Base.connection.raw_connection) + # ensure + # ActiveRecord::Base.clear_active_connections! + # end + + Queue = Redis::Queue + Storage = Redis::Storage + Railway = Redis::Railway + + def self.create!(conn) + Queue.create!(conn) if Queue.respond_to?(:create!) + Storage.create!(conn) if Storage.respond_to?(:create!) + Railway.create!(conn) if Railway.respond_to?(:create!) + end + + def self.destroy!(conn) + Queue.destroy!(conn) if Queue.respond_to?(:destroy!) + Storage.destroy!(conn) if Storage.respond_to?(:destroy!) + Railway.destroy!(conn) if Railway.respond_to?(:destroy!) end end