Sha256: 4a8d99f1234d012042b186c75250a3c05cabb67d7ffcff2221ee411486794276

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true
require 'fresh_connection/check_adapter'

module FreshConnection
  module Extend
    module ArAbstractAdapter
      def inherited(klass)
        case FreshConnection::CheckAdapter.check(klass)
        when :mysql
          klass.prepend BaseAdapter
          require 'fresh_connection/extend/adapters/m2_adapter'
          klass.prepend M2Adapter
        when :postgresql
          klass.prepend BaseAdapter
          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 select_all(*args)
        change_connection { super }
      end

      def select_value(*args)
        change_connection { super }
      end

      private

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

Version data entries

2 entries across 2 versions & 1 rubygems

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