Sha256: ab70968a072f1464a142bb3f91d76e231f76559cfa23408c0f782d45a17e6c32
Contents?: true
Size: 1.19 KB
Versions: 5
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true require 'forwardable' require 'luna_park/extensions/injector' require 'cyclone_lariat/core' require 'cyclone_lariat/repo/sequel/messages' require 'cyclone_lariat/repo/active_record/messages' module CycloneLariat module Repo class Messages include LunaPark::Extensions::Injector attr_reader :config dependency(:sequel_messages_class) { Repo::Sequel::Messages } dependency(:active_record_messages_class) { Repo::ActiveRecord::Messages } extend Forwardable def_delegators :driver, :create, :exists?, :processed!, :find, :each_unprocessed, :each_with_client_errors, :enabled?, :disabled? def initialize(**options) @config = CycloneLariat::Options.wrap(options).merge!(CycloneLariat.config) end def driver @driver ||= select(driver: config.driver) end private def select(driver:) case driver when :sequel then sequel_messages_class.new(config.messages_dataset) when :active_record then active_record_messages_class.new(config.messages_dataset) else raise ArgumentError, "Undefined driver `#{driver}`" end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems