Sha256: 6ba3f51960b8d7d498a690680b643f734f2067a0cec72fa5fa64b803b050a3fb

Contents?: true

Size: 939 Bytes

Versions: 1

Compression:

Stored size: 939 Bytes

Contents

# frozen_string_literal: true
require 'fresh_connection/check_adapter'

module FreshConnection
  module Extend
    module ArAbstractAdapter
      def inherited(klass)
        klass.prepend BaseAdapter

        case FreshConnection::CheckAdapter.check(klass)
        when :mysql
          require 'fresh_connection/extend/adapters/m2_adapter'
          klass.prepend M2Adapter
        when :postgresql
          require 'fresh_connection/extend/adapters/pg_adapter'
          klass.prepend PgAdapter
        end
      end
    end

    module BaseAdapter
      def self.prepended(base)
        base.send :attr_writer, :model_class
      end

      def log(*args)
        args[1] = "[#{replica_spec_name}] #{args[1]}" if replica_spec_name
        super
      end

      def replica_spec_name
        return nil if !defined?(@model_class) || !@model_class
        @model_class.replica_connection_specification_name
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fresh_connection-3.0.0.rc1 lib/fresh_connection/extend/ar_abstract_adapter.rb