active_record_proxy_adapters 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f614128aa280355a9bc8c83e29805fc36c81f8389c017489c848e075a5510c3
4
- data.tar.gz: d28585b2d7d1f7645dfc89007890a2c35ee19c4acc6de1b850e4f3b792cc0c07
3
+ metadata.gz: 151caa80f35f53ad02ef3307a55ef0fec4f1a6f369e6afac8d063e4ea2ad5e7f
4
+ data.tar.gz: 60213ad52a363c435514038eeb65227bff7132b91a6dbed86b8917459449c39e
5
5
  SHA512:
6
- metadata.gz: b3e36b3fe27bce5b1bdb9035fc399362f99d25062d97abc9024c02a30a8c6a328a2de3bdacda5682622c812f38f8b4a1da48d76e687131d3a6e07e44be4c6995
7
- data.tar.gz: 053d2cfdea1db5699cd18404e8b22524a826012534eb0e077b307102021adeccde565f9e7b6417dbbe053669464a7220ab3e1e2cb3b92201cc0b296e8f23f5ce
6
+ metadata.gz: 7720b6fe6b2d6848d30444f77c71d2567996f2e45011c79e6c4791e043b7d9333c2d92554cdf5f6b5a48c29c6b384509a00b9f9b3b930402d47c98188744daa7
7
+ data.tar.gz: b73be535ad798afb4386d4027e4e92df00d9864a196d4cc1d30ad3a0a4e524c87ad12f67d214ef524a1641800ccf5bc2ab4911acf49c5606d867f51981a18fec
data/CHANGELOG.md CHANGED
@@ -1,6 +1,10 @@
1
1
  ## [Unreleased]
2
2
 
3
- - Add Mysql2ProxyAdapter
3
+ - Fix Active Record adapters dependency loading
4
+
5
+ ## [0.3.0] - 2025-01-17
6
+
7
+ - Add Mysql2ProxyAdapter https://github.com/Nasdaq/active_record_proxy_adapters/commit/7481b79dc93114f9b3b40faa8f3eecce90fe9104
4
8
 
5
9
  ## [0.2.2, 0.1.5] - 2025-01-02
6
10
 
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2024 Nasdaq
3
+ Copyright (c) 2024 Nasdaq, Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require "active_record/connection_adapters/mysql2_proxy_adapter"
5
+ rescue LoadError
6
+ # mysql2 not available
7
+ return
8
+ end
9
+
10
+ module ActiveRecordProxyAdapters
11
+ # Module to extend ActiveRecord::Base with the connection handling methods.
12
+ # Required to make adapter work in ActiveRecord versions <= 7.2.x
13
+ module ConnectionHandling
14
+ def mysql2_proxy_adapter_class
15
+ ::ActiveRecord::ConnectionAdapters::Mysql2ProxyAdapter
16
+ end
17
+
18
+ # This method is a copy and paste from Rails' mysql2_connection,
19
+ # replacing Mysql2Adapter by Mysql2ProxyAdapter
20
+ # This is required by ActiveRecord versions <= 7.2.x to establish a connection using the adapter.
21
+ def mysql2_proxy_connection(config) # rubocop:disable Metrics/MethodLength
22
+ config = config.symbolize_keys
23
+ config[:flags] ||= 0
24
+
25
+ if config[:flags].is_a? Array
26
+ config[:flags].push "FOUND_ROWS"
27
+ else
28
+ config[:flags] |= Mysql2::Client::FOUND_ROWS
29
+ end
30
+
31
+ mysql2_proxy_adapter_class.new(
32
+ mysql2_proxy_adapter_class.new_client(config),
33
+ logger,
34
+ nil,
35
+ config
36
+ )
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require "active_record/connection_adapters/postgresql_proxy_adapter"
5
+ rescue LoadError
6
+ # Postgres not available
7
+ return
8
+ end
9
+
10
+ module ActiveRecordProxyAdapters
11
+ # Module to extend ActiveRecord::Base with the connection handling methods.
12
+ # Required to make adapter work in ActiveRecord versions <= 7.2.x
13
+ module ConnectionHandling
14
+ def postgresql_proxy_adapter_class
15
+ ::ActiveRecord::ConnectionAdapters::PostgreSQLProxyAdapter
16
+ end
17
+
18
+ # This method is a copy and paste from Rails' postgresql_connection,
19
+ # replacing PostgreSQLAdapter by PostgreSQLProxyAdapter
20
+ # This is required by ActiveRecord versions <= 7.2.x to establish a connection using the adapter.
21
+ def postgresql_proxy_connection(config) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
22
+ conn_params = config.symbolize_keys.compact
23
+
24
+ # Map ActiveRecords param names to PGs.
25
+ conn_params[:user] = conn_params.delete(:username) if conn_params[:username]
26
+ conn_params[:dbname] = conn_params.delete(:database) if conn_params[:database]
27
+
28
+ # Forward only valid config params to PG::Connection.connect.
29
+ valid_conn_param_keys = PG::Connection.conndefaults_hash.keys + [:requiressl]
30
+ conn_params.slice!(*valid_conn_param_keys)
31
+
32
+ postgresql_proxy_adapter_class.new(
33
+ postgresql_proxy_adapter_class.new_client(conn_params),
34
+ logger,
35
+ conn_params,
36
+ config
37
+ )
38
+ end
39
+ end
40
+ end
@@ -1,61 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "active_record/connection_adapters/postgresql_proxy_adapter"
4
- require "active_record/connection_adapters/mysql2_proxy_adapter"
3
+ require "active_record_proxy_adapters/connection_handling/postgresql"
4
+ require "active_record_proxy_adapters/connection_handling/mysql2"
5
5
 
6
6
  module ActiveRecordProxyAdapters
7
7
  # Module to extend ActiveRecord::Base with the connection handling methods.
8
8
  # Required to make adapter work in ActiveRecord versions <= 7.2.x
9
9
  module ConnectionHandling
10
- def postgresql_proxy_adapter_class
11
- ::ActiveRecord::ConnectionAdapters::PostgreSQLProxyAdapter
12
- end
13
-
14
- # This method is a copy and paste from Rails' postgresql_connection,
15
- # replacing PostgreSQLAdapter by PostgreSQLProxyAdapter
16
- # This is required by ActiveRecord versions <= 7.2.x to establish a connection using the adapter.
17
- def postgresql_proxy_connection(config) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
18
- conn_params = config.symbolize_keys.compact
19
-
20
- # Map ActiveRecords param names to PGs.
21
- conn_params[:user] = conn_params.delete(:username) if conn_params[:username]
22
- conn_params[:dbname] = conn_params.delete(:database) if conn_params[:database]
23
-
24
- # Forward only valid config params to PG::Connection.connect.
25
- valid_conn_param_keys = PG::Connection.conndefaults_hash.keys + [:requiressl]
26
- conn_params.slice!(*valid_conn_param_keys)
27
-
28
- postgresql_proxy_adapter_class.new(
29
- postgresql_proxy_adapter_class.new_client(conn_params),
30
- logger,
31
- conn_params,
32
- config
33
- )
34
- end
35
-
36
- def mysql2_proxy_adapter_class
37
- ::ActiveRecord::ConnectionAdapters::Mysql2ProxyAdapter
38
- end
39
-
40
- # This method is a copy and paste from Rails' mysql2_connection,
41
- # replacing Mysql2Adapter by Mysql2ProxyAdapter
42
- # This is required by ActiveRecord versions <= 7.2.x to establish a connection using the adapter.
43
- def mysql2_proxy_connection(config) # rubocop:disable Metrics/MethodLength
44
- config = config.symbolize_keys
45
- config[:flags] ||= 0
46
-
47
- if config[:flags].is_a? Array
48
- config[:flags].push "FOUND_ROWS"
49
- else
50
- config[:flags] |= Mysql2::Client::FOUND_ROWS
51
- end
52
-
53
- mysql2_proxy_adapter_class.new(
54
- mysql2_proxy_adapter_class.new_client(config),
55
- logger,
56
- nil,
57
- config
58
- )
59
- end
60
10
  end
61
11
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveRecordProxyAdapters
4
- VERSION = "0.3.0"
4
+ VERSION = "0.3.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_proxy_adapters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Cruz
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-01-18 00:00:00.000000000 Z
10
+ date: 2025-02-12 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activerecord
@@ -79,6 +78,8 @@ files:
79
78
  - lib/active_record_proxy_adapters/active_record_context.rb
80
79
  - lib/active_record_proxy_adapters/configuration.rb
81
80
  - lib/active_record_proxy_adapters/connection_handling.rb
81
+ - lib/active_record_proxy_adapters/connection_handling/mysql2.rb
82
+ - lib/active_record_proxy_adapters/connection_handling/postgresql.rb
82
83
  - lib/active_record_proxy_adapters/database_tasks.rb
83
84
  - lib/active_record_proxy_adapters/hijackable.rb
84
85
  - lib/active_record_proxy_adapters/log_subscriber.rb
@@ -99,7 +100,6 @@ metadata:
99
100
  source_code_uri: https://github.com/Nasdaq/active_record_proxy_adapters
100
101
  changelog_uri: https://github.com/Nasdaq/active_record_proxy_adapters/blob/main/CHANGELOG.md
101
102
  rubygems_mfa_required: 'true'
102
- post_install_message:
103
103
  rdoc_options: []
104
104
  require_paths:
105
105
  - lib
@@ -114,8 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  - !ruby/object:Gem::Version
115
115
  version: '0'
116
116
  requirements: []
117
- rubygems_version: 3.5.11
118
- signing_key:
117
+ rubygems_version: 3.6.2
119
118
  specification_version: 4
120
119
  summary: Read replica proxy adapters for ActiveRecord!
121
120
  test_files: []