Sha256: 04036678f3bfa3c92105e5ee1c0a86636bbb214534786e1841a64aad8d8fd741

Contents?: true

Size: 1.78 KB

Versions: 11

Compression:

Stored size: 1.78 KB

Contents

# frozen_string_literal: true

module PubSubModelSync
  class Config
    cattr_accessor(:subscribers) { [] }
    cattr_accessor(:service_name) { :google }

    # customizable callbacks
    cattr_accessor(:debug) { false }
    cattr_accessor(:logger) { Rails.logger }
    cattr_accessor(:transactions_max_buffer) { 1 }
    cattr_accessor(:skip_cache) { false }

    cattr_accessor(:on_before_processing) { ->(_payload, _info) {} } # return :cancel to skip
    cattr_accessor(:on_success_processing) { ->(_payload, _info) {} }
    cattr_accessor(:on_error_processing) { ->(exception, _info) { raise(exception) } }
    cattr_accessor(:on_before_publish) { ->(_payload) {} } # return :cancel to skip
    cattr_accessor(:on_after_publish) { ->(_payload) {} }
    cattr_accessor(:on_error_publish) { ->(_exception, _info) {} }

    # google service
    cattr_accessor :project, :credentials, :topic_name, :subscription_name, :default_topic_name

    # rabbitmq service
    cattr_accessor :bunny_connection, :topic_name, :subscription_name, :default_topic_name

    # kafka service
    cattr_accessor :kafka_connection, :topic_name, :subscription_name, :default_topic_name

    def self.log(msg, kind = :info)
      msg = "PS_MSYNC ==> #{msg}"
      if logger == :raise_error
        kind == :error ? raise(StandardError, msg) : puts(msg)
      else
        logger ? logger.send(kind, msg) : puts(msg)
      end
    end

    def self.subscription_key
      klass = Rails.application.class
      app_name = klass.respond_to?(:module_parent_name) ? klass.module_parent_name : klass.parent_name
      subscription_name || app_name
    end

    class << self
      alias default_topic_name_old default_topic_name

      def default_topic_name
        default_topic_name_old || Array(topic_name).first
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
pub_sub_model_sync-1.7.2 lib/pub_sub_model_sync/config.rb
pub_sub_model_sync-1.7.1 lib/pub_sub_model_sync/config.rb
pub_sub_model_sync-1.7.0 lib/pub_sub_model_sync/config.rb
pub_sub_model_sync-1.6.4 lib/pub_sub_model_sync/config.rb
pub_sub_model_sync-1.6.3 lib/pub_sub_model_sync/config.rb
pub_sub_model_sync-1.6.2 lib/pub_sub_model_sync/config.rb
pub_sub_model_sync-1.6.1 lib/pub_sub_model_sync/config.rb
pub_sub_model_sync-1.6.1pre lib/pub_sub_model_sync/config.rb
pub_sub_model_sync-1.6.0 lib/pub_sub_model_sync/config.rb
pub_sub_model_sync-1.5.1pre lib/pub_sub_model_sync/config.rb
pub_sub_model_sync-1.5.0 lib/pub_sub_model_sync/config.rb