active_record_proxy_adapters 0.3.0 → 0.4.0

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: 6ccf5136620d4473a468a5749886cb74d4a585b6d9b9f3f77c451715a16d9384
4
+ data.tar.gz: a75b44a62192b0cff1741170c9acff251fd19348f3651ff1750446bf8d459596
5
5
  SHA512:
6
- metadata.gz: b3e36b3fe27bce5b1bdb9035fc399362f99d25062d97abc9024c02a30a8c6a328a2de3bdacda5682622c812f38f8b4a1da48d76e687131d3a6e07e44be4c6995
7
- data.tar.gz: 053d2cfdea1db5699cd18404e8b22524a826012534eb0e077b307102021adeccde565f9e7b6417dbbe053669464a7220ab3e1e2cb3b92201cc0b296e8f23f5ce
6
+ metadata.gz: 9b37879abd9fd61b31bf50d450f50d0721be6251a8da0402732f3dbff1c5e486d728422581e3d95a8c5f4e762ac0a8b2ba364863e84728b3c0f5a5d54fe9eb5e
7
+ data.tar.gz: 553d0c18c4274aab856c3a8f6bcc110d41babd290fe1397ec07f5abfcde810d6b22e734afd33a7035c072f1f5d2b9e1a6f6fd1d29ce19f5bd9b1b89e967f3803
data/.rubocop.yml CHANGED
@@ -4,6 +4,8 @@ require:
4
4
  AllCops:
5
5
  TargetRubyVersion: 3.1
6
6
  NewCops: enable
7
+ Exclude:
8
+ - 'gemfiles/**/*'
7
9
 
8
10
  Style/StringLiterals:
9
11
  EnforcedStyle: double_quotes
data/Appraisals ADDED
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ appraise "rails-7.0" do
4
+ gem "activerecord", "~> 7.0.0"
5
+ gem "activesupport", "~> 7.0.0"
6
+ gem "concurrent-ruby", "1.3.4"
7
+ gem "mutex_m"
8
+ gem "bigdecimal"
9
+ gem "activerecord-trilogy-adapter"
10
+ end
11
+
12
+ appraise "rails-7.1" do
13
+ gem "activerecord", "~> 7.1.0"
14
+ gem "activesupport", "~> 7.1.0"
15
+ end
16
+
17
+ appraise "rails-7.2" do
18
+ gem "activerecord", "~> 7.2.0"
19
+ gem "activesupport", "~> 7.2.0"
20
+ end
21
+
22
+ appraise "rails-8.0" do
23
+ gem "activerecord", "~> 8.0.0"
24
+ gem "activesupport", "~> 8.0.0"
25
+ end
data/CHANGELOG.md CHANGED
@@ -1,6 +1,14 @@
1
1
  ## [Unreleased]
2
2
 
3
- - Add Mysql2ProxyAdapter
3
+ - Add load hooks for proxy adapters
4
+ - Add TrilogyProxyAdapter
5
+
6
+ ## [0.3.1] - 2025-02-12
7
+ - Fix Active Record adapters dependency loading https://github.com/Nasdaq/active_record_proxy_adapters/commit/b729f8bdb517cdc80f348c00e1fe4c5b56b76143
8
+
9
+ ## [0.3.0] - 2025-01-17
10
+
11
+ - Add Mysql2ProxyAdapter https://github.com/Nasdaq/active_record_proxy_adapters/commit/7481b79dc93114f9b3b40faa8f3eecce90fe9104
4
12
 
5
13
  ## [0.2.2, 0.1.5] - 2025-01-02
6
14
 
data/Dockerfile CHANGED
@@ -1,8 +1,8 @@
1
1
  ARG RUBY_VERSION=3.2.3
2
2
  ARG DOCKER_REGISTRY=docker.io
3
3
  FROM $DOCKER_REGISTRY/ruby:$RUBY_VERSION-alpine
4
- ARG RAILS_VERSION="~> 6.1.0"
5
- ENV RAILS_VERSION=$RAILS_VERSION
4
+ ENV RAILS_VERSION="8.0.0"
5
+ ENV RAILS_ENV=test
6
6
 
7
7
  RUN apk --update add \
8
8
  build-base \
@@ -17,4 +17,5 @@ COPY . /app
17
17
  WORKDIR /app
18
18
 
19
19
  RUN bundle install
20
+ RUN bundle exec appraisal install
20
21
 
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
data/docker-compose.yml CHANGED
@@ -16,29 +16,29 @@ services:
16
16
  build:
17
17
  args:
18
18
  - RUBY_VERSION=${RUBY_VERSION:-3.3.6}
19
- - RAILS_VERSION=${RAILS_VERSION:-8.0.0}
20
19
  container_name: app
21
20
  image: active_record_proxy_adapters-app:${ENV_TAG:-latest}
22
21
  tty: true
23
22
  stdin_open: true
24
23
  environment:
25
- PGHOST: postgres_primary
26
- PG_PRIMARY_USER: postgres_primary_test
27
- PG_PRIMARY_PASSWORD: postgres_primary_test
28
- PG_PRIMARY_HOST: postgres_primary
29
- PG_PRIMARY_PORT: 5432
30
- PG_REPLICA_USER: postgres_primary_test
31
- PG_REPLICA_PASSWORD: postgres_primary_test
32
- PG_REPLICA_HOST: postgres_replica
33
- PG_REPLICA_PORT: 5432
34
- MYSQL_PRIMARY_USER: root
35
- MYSQL_PRIMARY_PASSWORD: mysql
36
- MYSQL_PRIMARY_HOST: mysql_primary
37
- MYSQL_PRIMARY_PORT: 3306
38
- MYSQL_REPLICA_USER: root
39
- MYSQL_REPLICA_PASSWORD: mysql
40
- MYSQL_REPLICA_HOST: mysql_primary
41
- MYSQL_REPLICA_PORT: 3306
24
+ - RAILS_VERSION=${RAILS_VERSION:-8.0.0}
25
+ - PGHOST=postgres_primary
26
+ - PG_PRIMARY_USER=postgres_primary_test
27
+ - PG_PRIMARY_PASSWORD=postgres_primary_test
28
+ - PG_PRIMARY_HOST=postgres_primary
29
+ - PG_PRIMARY_PORT=5432
30
+ - PG_REPLICA_USER=postgres_primary_test
31
+ - PG_REPLICA_PASSWORD=postgres_primary_test
32
+ - PG_REPLICA_HOST=postgres_replica
33
+ - PG_REPLICA_PORT=5432
34
+ - MYSQL_PRIMARY_USER=root
35
+ - MYSQL_PRIMARY_PASSWORD=mysql
36
+ - MYSQL_PRIMARY_HOST=mysql_primary
37
+ - MYSQL_PRIMARY_PORT=3306
38
+ - MYSQL_REPLICA_USER=root
39
+ - MYSQL_REPLICA_PASSWORD=mysql
40
+ - MYSQL_REPLICA_HOST=mysql_primary
41
+ - MYSQL_REPLICA_PORT=3306
42
42
  depends_on:
43
43
  - postgres_primary
44
44
  - postgres_replica
@@ -0,0 +1,25 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "mysql2", "~> 0.5"
6
+ gem "pg", "~> 1.5"
7
+ gem "trilogy", "~> 2.9"
8
+ gem "rake", "~> 13.0"
9
+ gem "appraisal"
10
+ gem "activerecord", "~> 7.0.0"
11
+ gem "activesupport", "~> 7.0.0"
12
+ gem "concurrent-ruby", "1.3.4"
13
+ gem "mutex_m"
14
+ gem "bigdecimal"
15
+ gem "activerecord-trilogy-adapter"
16
+
17
+ group :test do
18
+ gem "rspec", "~> 3.0"
19
+ gem "rubocop", "~> 1.72"
20
+ gem "rubocop-rspec", "~> 3.5.0"
21
+ gem "simplecov"
22
+ gem "simplecov-cobertura"
23
+ end
24
+
25
+ gemspec path: "../"
@@ -0,0 +1,122 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ active_record_proxy_adapters (0.3.1)
5
+ activerecord (>= 7.0.0, < 8.1)
6
+ activesupport (>= 7.0.0, < 8.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activemodel (7.0.8.7)
12
+ activesupport (= 7.0.8.7)
13
+ activerecord (7.0.8.7)
14
+ activemodel (= 7.0.8.7)
15
+ activesupport (= 7.0.8.7)
16
+ activerecord-trilogy-adapter (3.1.2)
17
+ activerecord (>= 6.0.a, < 7.1.a)
18
+ trilogy (>= 2.4.0)
19
+ activesupport (7.0.8.7)
20
+ concurrent-ruby (~> 1.0, >= 1.0.2)
21
+ i18n (>= 1.6, < 2)
22
+ minitest (>= 5.1)
23
+ tzinfo (~> 2.0)
24
+ appraisal (2.5.0)
25
+ bundler
26
+ rake
27
+ thor (>= 0.14.0)
28
+ ast (2.4.2)
29
+ bigdecimal (3.1.9)
30
+ concurrent-ruby (1.3.4)
31
+ diff-lcs (1.6.0)
32
+ docile (1.4.1)
33
+ i18n (1.14.7)
34
+ concurrent-ruby (~> 1.0)
35
+ json (2.10.1)
36
+ language_server-protocol (3.17.0.4)
37
+ lint_roller (1.1.0)
38
+ minitest (5.25.4)
39
+ mutex_m (0.3.0)
40
+ mysql2 (0.5.6)
41
+ parallel (1.26.3)
42
+ parser (3.3.7.1)
43
+ ast (~> 2.4.1)
44
+ racc
45
+ pg (1.5.9)
46
+ racc (1.8.1)
47
+ rainbow (3.1.1)
48
+ rake (13.2.1)
49
+ regexp_parser (2.10.0)
50
+ rexml (3.4.0)
51
+ rspec (3.13.0)
52
+ rspec-core (~> 3.13.0)
53
+ rspec-expectations (~> 3.13.0)
54
+ rspec-mocks (~> 3.13.0)
55
+ rspec-core (3.13.3)
56
+ rspec-support (~> 3.13.0)
57
+ rspec-expectations (3.13.3)
58
+ diff-lcs (>= 1.2.0, < 2.0)
59
+ rspec-support (~> 3.13.0)
60
+ rspec-mocks (3.13.2)
61
+ diff-lcs (>= 1.2.0, < 2.0)
62
+ rspec-support (~> 3.13.0)
63
+ rspec-support (3.13.2)
64
+ rubocop (1.72.2)
65
+ json (~> 2.3)
66
+ language_server-protocol (~> 3.17.0.2)
67
+ lint_roller (~> 1.1.0)
68
+ parallel (~> 1.10)
69
+ parser (>= 3.3.0.2)
70
+ rainbow (>= 2.2.2, < 4.0)
71
+ regexp_parser (>= 2.9.3, < 3.0)
72
+ rubocop-ast (>= 1.38.0, < 2.0)
73
+ ruby-progressbar (~> 1.7)
74
+ unicode-display_width (>= 2.4.0, < 4.0)
75
+ rubocop-ast (1.38.0)
76
+ parser (>= 3.3.1.0)
77
+ rubocop-rspec (3.5.0)
78
+ lint_roller (~> 1.1)
79
+ rubocop (~> 1.72, >= 1.72.1)
80
+ ruby-progressbar (1.13.0)
81
+ simplecov (0.22.0)
82
+ docile (~> 1.1)
83
+ simplecov-html (~> 0.11)
84
+ simplecov_json_formatter (~> 0.1)
85
+ simplecov-cobertura (2.1.0)
86
+ rexml
87
+ simplecov (~> 0.19)
88
+ simplecov-html (0.13.1)
89
+ simplecov_json_formatter (0.1.4)
90
+ thor (1.3.2)
91
+ trilogy (2.9.0)
92
+ tzinfo (2.0.6)
93
+ concurrent-ruby (~> 1.0)
94
+ unicode-display_width (3.1.4)
95
+ unicode-emoji (~> 4.0, >= 4.0.4)
96
+ unicode-emoji (4.0.4)
97
+
98
+ PLATFORMS
99
+ aarch64-linux-musl
100
+ ruby
101
+
102
+ DEPENDENCIES
103
+ active_record_proxy_adapters!
104
+ activerecord (~> 7.0.0)
105
+ activerecord-trilogy-adapter
106
+ activesupport (~> 7.0.0)
107
+ appraisal
108
+ bigdecimal
109
+ concurrent-ruby (= 1.3.4)
110
+ mutex_m
111
+ mysql2 (~> 0.5)
112
+ pg (~> 1.5)
113
+ rake (~> 13.0)
114
+ rspec (~> 3.0)
115
+ rubocop (~> 1.72)
116
+ rubocop-rspec (~> 3.5.0)
117
+ simplecov
118
+ simplecov-cobertura
119
+ trilogy (~> 2.9)
120
+
121
+ BUNDLED WITH
122
+ 2.5.13
@@ -0,0 +1,21 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "mysql2", "~> 0.5"
6
+ gem "pg", "~> 1.5"
7
+ gem "trilogy", "~> 2.9"
8
+ gem "rake", "~> 13.0"
9
+ gem "appraisal"
10
+ gem "activerecord", "~> 7.1.0"
11
+ gem "activesupport", "~> 7.1.0"
12
+
13
+ group :test do
14
+ gem "rspec", "~> 3.0"
15
+ gem "rubocop", "~> 1.72"
16
+ gem "rubocop-rspec", "~> 3.5.0"
17
+ gem "simplecov"
18
+ gem "simplecov-cobertura"
19
+ end
20
+
21
+ gemspec path: "../"
@@ -0,0 +1,131 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ active_record_proxy_adapters (0.3.1)
5
+ activerecord (>= 7.0.0, < 8.1)
6
+ activesupport (>= 7.0.0, < 8.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activemodel (7.1.5.1)
12
+ activesupport (= 7.1.5.1)
13
+ activerecord (7.1.5.1)
14
+ activemodel (= 7.1.5.1)
15
+ activesupport (= 7.1.5.1)
16
+ timeout (>= 0.4.0)
17
+ activesupport (7.1.5.1)
18
+ base64
19
+ benchmark (>= 0.3)
20
+ bigdecimal
21
+ concurrent-ruby (~> 1.0, >= 1.0.2)
22
+ connection_pool (>= 2.2.5)
23
+ drb
24
+ i18n (>= 1.6, < 2)
25
+ logger (>= 1.4.2)
26
+ minitest (>= 5.1)
27
+ mutex_m
28
+ securerandom (>= 0.3)
29
+ tzinfo (~> 2.0)
30
+ appraisal (2.5.0)
31
+ bundler
32
+ rake
33
+ thor (>= 0.14.0)
34
+ ast (2.4.2)
35
+ base64 (0.2.0)
36
+ benchmark (0.4.0)
37
+ bigdecimal (3.1.9)
38
+ concurrent-ruby (1.3.5)
39
+ connection_pool (2.5.0)
40
+ diff-lcs (1.6.0)
41
+ docile (1.4.1)
42
+ drb (2.2.1)
43
+ i18n (1.14.7)
44
+ concurrent-ruby (~> 1.0)
45
+ json (2.10.1)
46
+ language_server-protocol (3.17.0.4)
47
+ lint_roller (1.1.0)
48
+ logger (1.6.6)
49
+ minitest (5.25.4)
50
+ mutex_m (0.3.0)
51
+ mysql2 (0.5.6)
52
+ parallel (1.26.3)
53
+ parser (3.3.7.1)
54
+ ast (~> 2.4.1)
55
+ racc
56
+ pg (1.5.9)
57
+ racc (1.8.1)
58
+ rainbow (3.1.1)
59
+ rake (13.2.1)
60
+ regexp_parser (2.10.0)
61
+ rexml (3.4.0)
62
+ rspec (3.13.0)
63
+ rspec-core (~> 3.13.0)
64
+ rspec-expectations (~> 3.13.0)
65
+ rspec-mocks (~> 3.13.0)
66
+ rspec-core (3.13.3)
67
+ rspec-support (~> 3.13.0)
68
+ rspec-expectations (3.13.3)
69
+ diff-lcs (>= 1.2.0, < 2.0)
70
+ rspec-support (~> 3.13.0)
71
+ rspec-mocks (3.13.2)
72
+ diff-lcs (>= 1.2.0, < 2.0)
73
+ rspec-support (~> 3.13.0)
74
+ rspec-support (3.13.2)
75
+ rubocop (1.72.2)
76
+ json (~> 2.3)
77
+ language_server-protocol (~> 3.17.0.2)
78
+ lint_roller (~> 1.1.0)
79
+ parallel (~> 1.10)
80
+ parser (>= 3.3.0.2)
81
+ rainbow (>= 2.2.2, < 4.0)
82
+ regexp_parser (>= 2.9.3, < 3.0)
83
+ rubocop-ast (>= 1.38.0, < 2.0)
84
+ ruby-progressbar (~> 1.7)
85
+ unicode-display_width (>= 2.4.0, < 4.0)
86
+ rubocop-ast (1.38.0)
87
+ parser (>= 3.3.1.0)
88
+ rubocop-rspec (3.5.0)
89
+ lint_roller (~> 1.1)
90
+ rubocop (~> 1.72, >= 1.72.1)
91
+ ruby-progressbar (1.13.0)
92
+ securerandom (0.4.1)
93
+ simplecov (0.22.0)
94
+ docile (~> 1.1)
95
+ simplecov-html (~> 0.11)
96
+ simplecov_json_formatter (~> 0.1)
97
+ simplecov-cobertura (2.1.0)
98
+ rexml
99
+ simplecov (~> 0.19)
100
+ simplecov-html (0.13.1)
101
+ simplecov_json_formatter (0.1.4)
102
+ thor (1.3.2)
103
+ timeout (0.4.3)
104
+ trilogy (2.9.0)
105
+ tzinfo (2.0.6)
106
+ concurrent-ruby (~> 1.0)
107
+ unicode-display_width (3.1.4)
108
+ unicode-emoji (~> 4.0, >= 4.0.4)
109
+ unicode-emoji (4.0.4)
110
+
111
+ PLATFORMS
112
+ aarch64-linux-musl
113
+ ruby
114
+
115
+ DEPENDENCIES
116
+ active_record_proxy_adapters!
117
+ activerecord (~> 7.1.0)
118
+ activesupport (~> 7.1.0)
119
+ appraisal
120
+ mysql2 (~> 0.5)
121
+ pg (~> 1.5)
122
+ rake (~> 13.0)
123
+ rspec (~> 3.0)
124
+ rubocop (~> 1.72)
125
+ rubocop-rspec (~> 3.5.0)
126
+ simplecov
127
+ simplecov-cobertura
128
+ trilogy (~> 2.9)
129
+
130
+ BUNDLED WITH
131
+ 2.5.13
@@ -0,0 +1,21 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "mysql2", "~> 0.5"
6
+ gem "pg", "~> 1.5"
7
+ gem "trilogy", "~> 2.9"
8
+ gem "rake", "~> 13.0"
9
+ gem "appraisal"
10
+ gem "activerecord", "~> 7.2.0"
11
+ gem "activesupport", "~> 7.2.0"
12
+
13
+ group :test do
14
+ gem "rspec", "~> 3.0"
15
+ gem "rubocop", "~> 1.72"
16
+ gem "rubocop-rspec", "~> 3.5.0"
17
+ gem "simplecov"
18
+ gem "simplecov-cobertura"
19
+ end
20
+
21
+ gemspec path: "../"
@@ -0,0 +1,129 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ active_record_proxy_adapters (0.3.1)
5
+ activerecord (>= 7.0.0, < 8.1)
6
+ activesupport (>= 7.0.0, < 8.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activemodel (7.2.2.1)
12
+ activesupport (= 7.2.2.1)
13
+ activerecord (7.2.2.1)
14
+ activemodel (= 7.2.2.1)
15
+ activesupport (= 7.2.2.1)
16
+ timeout (>= 0.4.0)
17
+ activesupport (7.2.2.1)
18
+ base64
19
+ benchmark (>= 0.3)
20
+ bigdecimal
21
+ concurrent-ruby (~> 1.0, >= 1.3.1)
22
+ connection_pool (>= 2.2.5)
23
+ drb
24
+ i18n (>= 1.6, < 2)
25
+ logger (>= 1.4.2)
26
+ minitest (>= 5.1)
27
+ securerandom (>= 0.3)
28
+ tzinfo (~> 2.0, >= 2.0.5)
29
+ appraisal (2.5.0)
30
+ bundler
31
+ rake
32
+ thor (>= 0.14.0)
33
+ ast (2.4.2)
34
+ base64 (0.2.0)
35
+ benchmark (0.4.0)
36
+ bigdecimal (3.1.9)
37
+ concurrent-ruby (1.3.5)
38
+ connection_pool (2.5.0)
39
+ diff-lcs (1.6.0)
40
+ docile (1.4.1)
41
+ drb (2.2.1)
42
+ i18n (1.14.7)
43
+ concurrent-ruby (~> 1.0)
44
+ json (2.10.1)
45
+ language_server-protocol (3.17.0.4)
46
+ lint_roller (1.1.0)
47
+ logger (1.6.6)
48
+ minitest (5.25.4)
49
+ mysql2 (0.5.6)
50
+ parallel (1.26.3)
51
+ parser (3.3.7.1)
52
+ ast (~> 2.4.1)
53
+ racc
54
+ pg (1.5.9)
55
+ racc (1.8.1)
56
+ rainbow (3.1.1)
57
+ rake (13.2.1)
58
+ regexp_parser (2.10.0)
59
+ rexml (3.4.0)
60
+ rspec (3.13.0)
61
+ rspec-core (~> 3.13.0)
62
+ rspec-expectations (~> 3.13.0)
63
+ rspec-mocks (~> 3.13.0)
64
+ rspec-core (3.13.3)
65
+ rspec-support (~> 3.13.0)
66
+ rspec-expectations (3.13.3)
67
+ diff-lcs (>= 1.2.0, < 2.0)
68
+ rspec-support (~> 3.13.0)
69
+ rspec-mocks (3.13.2)
70
+ diff-lcs (>= 1.2.0, < 2.0)
71
+ rspec-support (~> 3.13.0)
72
+ rspec-support (3.13.2)
73
+ rubocop (1.72.2)
74
+ json (~> 2.3)
75
+ language_server-protocol (~> 3.17.0.2)
76
+ lint_roller (~> 1.1.0)
77
+ parallel (~> 1.10)
78
+ parser (>= 3.3.0.2)
79
+ rainbow (>= 2.2.2, < 4.0)
80
+ regexp_parser (>= 2.9.3, < 3.0)
81
+ rubocop-ast (>= 1.38.0, < 2.0)
82
+ ruby-progressbar (~> 1.7)
83
+ unicode-display_width (>= 2.4.0, < 4.0)
84
+ rubocop-ast (1.38.0)
85
+ parser (>= 3.3.1.0)
86
+ rubocop-rspec (3.5.0)
87
+ lint_roller (~> 1.1)
88
+ rubocop (~> 1.72, >= 1.72.1)
89
+ ruby-progressbar (1.13.0)
90
+ securerandom (0.4.1)
91
+ simplecov (0.22.0)
92
+ docile (~> 1.1)
93
+ simplecov-html (~> 0.11)
94
+ simplecov_json_formatter (~> 0.1)
95
+ simplecov-cobertura (2.1.0)
96
+ rexml
97
+ simplecov (~> 0.19)
98
+ simplecov-html (0.13.1)
99
+ simplecov_json_formatter (0.1.4)
100
+ thor (1.3.2)
101
+ timeout (0.4.3)
102
+ trilogy (2.9.0)
103
+ tzinfo (2.0.6)
104
+ concurrent-ruby (~> 1.0)
105
+ unicode-display_width (3.1.4)
106
+ unicode-emoji (~> 4.0, >= 4.0.4)
107
+ unicode-emoji (4.0.4)
108
+
109
+ PLATFORMS
110
+ aarch64-linux-musl
111
+ ruby
112
+
113
+ DEPENDENCIES
114
+ active_record_proxy_adapters!
115
+ activerecord (~> 7.2.0)
116
+ activesupport (~> 7.2.0)
117
+ appraisal
118
+ mysql2 (~> 0.5)
119
+ pg (~> 1.5)
120
+ rake (~> 13.0)
121
+ rspec (~> 3.0)
122
+ rubocop (~> 1.72)
123
+ rubocop-rspec (~> 3.5.0)
124
+ simplecov
125
+ simplecov-cobertura
126
+ trilogy (~> 2.9)
127
+
128
+ BUNDLED WITH
129
+ 2.5.13
@@ -0,0 +1,21 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "mysql2", "~> 0.5"
6
+ gem "pg", "~> 1.5"
7
+ gem "trilogy", "~> 2.9"
8
+ gem "rake", "~> 13.0"
9
+ gem "appraisal"
10
+ gem "activerecord", "~> 8.0.0"
11
+ gem "activesupport", "~> 8.0.0"
12
+
13
+ group :test do
14
+ gem "rspec", "~> 3.0"
15
+ gem "rubocop", "~> 1.72"
16
+ gem "rubocop-rspec", "~> 3.5.0"
17
+ gem "simplecov"
18
+ gem "simplecov-cobertura"
19
+ end
20
+
21
+ gemspec path: "../"
@@ -0,0 +1,131 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ active_record_proxy_adapters (0.3.1)
5
+ activerecord (>= 7.0.0, < 8.1)
6
+ activesupport (>= 7.0.0, < 8.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activemodel (8.0.1)
12
+ activesupport (= 8.0.1)
13
+ activerecord (8.0.1)
14
+ activemodel (= 8.0.1)
15
+ activesupport (= 8.0.1)
16
+ timeout (>= 0.4.0)
17
+ activesupport (8.0.1)
18
+ base64
19
+ benchmark (>= 0.3)
20
+ bigdecimal
21
+ concurrent-ruby (~> 1.0, >= 1.3.1)
22
+ connection_pool (>= 2.2.5)
23
+ drb
24
+ i18n (>= 1.6, < 2)
25
+ logger (>= 1.4.2)
26
+ minitest (>= 5.1)
27
+ securerandom (>= 0.3)
28
+ tzinfo (~> 2.0, >= 2.0.5)
29
+ uri (>= 0.13.1)
30
+ appraisal (2.5.0)
31
+ bundler
32
+ rake
33
+ thor (>= 0.14.0)
34
+ ast (2.4.2)
35
+ base64 (0.2.0)
36
+ benchmark (0.4.0)
37
+ bigdecimal (3.1.9)
38
+ concurrent-ruby (1.3.5)
39
+ connection_pool (2.5.0)
40
+ diff-lcs (1.6.0)
41
+ docile (1.4.1)
42
+ drb (2.2.1)
43
+ i18n (1.14.7)
44
+ concurrent-ruby (~> 1.0)
45
+ json (2.10.1)
46
+ language_server-protocol (3.17.0.4)
47
+ lint_roller (1.1.0)
48
+ logger (1.6.6)
49
+ minitest (5.25.4)
50
+ mysql2 (0.5.6)
51
+ parallel (1.26.3)
52
+ parser (3.3.7.1)
53
+ ast (~> 2.4.1)
54
+ racc
55
+ pg (1.5.9)
56
+ racc (1.8.1)
57
+ rainbow (3.1.1)
58
+ rake (13.2.1)
59
+ regexp_parser (2.10.0)
60
+ rexml (3.4.0)
61
+ rspec (3.13.0)
62
+ rspec-core (~> 3.13.0)
63
+ rspec-expectations (~> 3.13.0)
64
+ rspec-mocks (~> 3.13.0)
65
+ rspec-core (3.13.3)
66
+ rspec-support (~> 3.13.0)
67
+ rspec-expectations (3.13.3)
68
+ diff-lcs (>= 1.2.0, < 2.0)
69
+ rspec-support (~> 3.13.0)
70
+ rspec-mocks (3.13.2)
71
+ diff-lcs (>= 1.2.0, < 2.0)
72
+ rspec-support (~> 3.13.0)
73
+ rspec-support (3.13.2)
74
+ rubocop (1.72.2)
75
+ json (~> 2.3)
76
+ language_server-protocol (~> 3.17.0.2)
77
+ lint_roller (~> 1.1.0)
78
+ parallel (~> 1.10)
79
+ parser (>= 3.3.0.2)
80
+ rainbow (>= 2.2.2, < 4.0)
81
+ regexp_parser (>= 2.9.3, < 3.0)
82
+ rubocop-ast (>= 1.38.0, < 2.0)
83
+ ruby-progressbar (~> 1.7)
84
+ unicode-display_width (>= 2.4.0, < 4.0)
85
+ rubocop-ast (1.38.0)
86
+ parser (>= 3.3.1.0)
87
+ rubocop-rspec (3.5.0)
88
+ lint_roller (~> 1.1)
89
+ rubocop (~> 1.72, >= 1.72.1)
90
+ ruby-progressbar (1.13.0)
91
+ securerandom (0.4.1)
92
+ simplecov (0.22.0)
93
+ docile (~> 1.1)
94
+ simplecov-html (~> 0.11)
95
+ simplecov_json_formatter (~> 0.1)
96
+ simplecov-cobertura (2.1.0)
97
+ rexml
98
+ simplecov (~> 0.19)
99
+ simplecov-html (0.13.1)
100
+ simplecov_json_formatter (0.1.4)
101
+ thor (1.3.2)
102
+ timeout (0.4.3)
103
+ trilogy (2.9.0)
104
+ tzinfo (2.0.6)
105
+ concurrent-ruby (~> 1.0)
106
+ unicode-display_width (3.1.4)
107
+ unicode-emoji (~> 4.0, >= 4.0.4)
108
+ unicode-emoji (4.0.4)
109
+ uri (1.0.2)
110
+
111
+ PLATFORMS
112
+ aarch64-linux-musl
113
+ ruby
114
+
115
+ DEPENDENCIES
116
+ active_record_proxy_adapters!
117
+ activerecord (~> 8.0.0)
118
+ activesupport (~> 8.0.0)
119
+ appraisal
120
+ mysql2 (~> 0.5)
121
+ pg (~> 1.5)
122
+ rake (~> 13.0)
123
+ rspec (~> 3.0)
124
+ rubocop (~> 1.72)
125
+ rubocop-rspec (~> 3.5.0)
126
+ simplecov
127
+ simplecov-cobertura
128
+ trilogy (~> 2.9)
129
+
130
+ BUNDLED WITH
131
+ 2.5.13
@@ -37,3 +37,5 @@ if ActiveRecordProxyAdapters::ActiveRecordContext.active_record_v7_2_or_greater?
37
37
  "active_record/connection_adapters/mysql2_proxy_adapter"
38
38
  )
39
39
  end
40
+
41
+ ActiveSupport.run_load_hooks(:active_record_mysql2proxyadapter, ActiveRecord::ConnectionAdapters::Mysql2ProxyAdapter)
@@ -41,3 +41,6 @@ if ActiveRecordProxyAdapters::ActiveRecordContext.active_record_v7_2_or_greater?
41
41
  "active_record/connection_adapters/postgresql_proxy_adapter"
42
42
  )
43
43
  end
44
+
45
+ ActiveSupport.run_load_hooks(:active_record_postgresqlproxyadapter,
46
+ ActiveRecord::ConnectionAdapters::PostgreSQLProxyAdapter)
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_record/tasks/trilogy_proxy_database_tasks"
4
+ require "active_record/connection_adapters/trilogy_adapter"
5
+ require "active_record_proxy_adapters/active_record_context"
6
+ require "active_record_proxy_adapters/hijackable"
7
+ require "active_record_proxy_adapters/trilogy_proxy"
8
+
9
+ module ActiveRecord
10
+ module ConnectionAdapters
11
+ # This adapter is a proxy to the original TrilogyAdapter, allowing the use of the
12
+ # ActiveRecordProxyAdapters::PrimaryReplicaProxy.
13
+ class TrilogyProxyAdapter < TrilogyAdapter
14
+ include ActiveRecordProxyAdapters::Hijackable
15
+
16
+ ADAPTER_NAME = "TrilogyProxy"
17
+
18
+ delegate_to_proxy :execute, :exec_query
19
+
20
+ def initialize(...)
21
+ @proxy = ActiveRecordProxyAdapters::TrilogyProxy.new(self)
22
+
23
+ super
24
+ end
25
+
26
+ private
27
+
28
+ attr_reader :proxy
29
+ end
30
+ end
31
+ end
32
+
33
+ if ActiveRecordProxyAdapters::ActiveRecordContext.active_record_v7_2_or_greater?
34
+ ActiveRecord::ConnectionAdapters.register(
35
+ "trilogy_proxy",
36
+ "ActiveRecord::ConnectionAdapters::TrilogyProxyAdapter",
37
+ "active_record/connection_adapters/trilogy_proxy_adapter"
38
+ )
39
+ end
40
+
41
+ ActiveSupport.run_load_hooks(:active_record_trilogyproxyadapter, ActiveRecord::ConnectionAdapters::TrilogyProxyAdapter)
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_record_proxy_adapters/database_tasks"
4
+
5
+ module ActiveRecord
6
+ module Tasks
7
+ # Defines the trilogy tasks for dropping, creating, loading schema and dumping schema.
8
+ # Bypasses all the proxy logic to send all requests to primary.
9
+ class TrilogyProxyDatabaseTasks < MySQLDatabaseTasks
10
+ include ActiveRecordProxyAdapters::DatabaseTasks
11
+ end
12
+ end
13
+ end
14
+
15
+ # Allow proxy adapter to run rake tasks, i.e. db:drop, db:create, db:schema:load db:migrate, etc...
16
+ ActiveRecord::Tasks::DatabaseTasks.register_task(
17
+ /trilogy_proxy/,
18
+ "ActiveRecord::Tasks::TrilogyProxyDatabaseTasks"
19
+ )
@@ -0,0 +1,45 @@
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 Mysql2
12
+ # Module to extend ActiveRecord::Base with the connection handling methods.
13
+ # Required to make adapter work in ActiveRecord versions <= 7.2.x
14
+ module ConnectionHandling
15
+ def mysql2_proxy_adapter_class
16
+ ::ActiveRecord::ConnectionAdapters::Mysql2ProxyAdapter
17
+ end
18
+
19
+ # This method is a copy and paste from Rails' mysql2_connection,
20
+ # replacing Mysql2Adapter by Mysql2ProxyAdapter
21
+ # This is required by ActiveRecord versions <= 7.2.x to establish a connection using the adapter.
22
+ def mysql2_proxy_connection(config) # rubocop:disable Metrics/MethodLength
23
+ config = config.symbolize_keys
24
+ config[:flags] ||= 0
25
+
26
+ if config[:flags].is_a? Array
27
+ config[:flags].push "FOUND_ROWS"
28
+ else
29
+ config[:flags] |= ::Mysql2::Client::FOUND_ROWS
30
+ end
31
+
32
+ mysql2_proxy_adapter_class.new(
33
+ mysql2_proxy_adapter_class.new_client(config),
34
+ logger,
35
+ nil,
36
+ config
37
+ )
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ ActiveSupport.on_load(:active_record) do
44
+ ActiveRecord::Base.extend(ActiveRecordProxyAdapters::Mysql2::ConnectionHandling)
45
+ end
@@ -0,0 +1,46 @@
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 PostgreSQL
14
+ module ConnectionHandling # rubocop:disable Style/Documentation
15
+ def postgresql_proxy_adapter_class
16
+ ::ActiveRecord::ConnectionAdapters::PostgreSQLProxyAdapter
17
+ end
18
+
19
+ # This method is a copy and paste from Rails' postgresql_connection,
20
+ # replacing PostgreSQLAdapter by PostgreSQLProxyAdapter
21
+ # This is required by ActiveRecord versions <= 7.2.x to establish a connection using the adapter.
22
+ def postgresql_proxy_connection(config) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
23
+ conn_params = config.symbolize_keys.compact
24
+
25
+ # Map ActiveRecords param names to PGs.
26
+ conn_params[:user] = conn_params.delete(:username) if conn_params[:username]
27
+ conn_params[:dbname] = conn_params.delete(:database) if conn_params[:database]
28
+
29
+ # Forward only valid config params to PG::Connection.connect.
30
+ valid_conn_param_keys = PG::Connection.conndefaults_hash.keys + [:requiressl]
31
+ conn_params.slice!(*valid_conn_param_keys)
32
+
33
+ postgresql_proxy_adapter_class.new(
34
+ postgresql_proxy_adapter_class.new_client(conn_params),
35
+ logger,
36
+ conn_params,
37
+ config
38
+ )
39
+ end
40
+ end
41
+ end
42
+ end
43
+
44
+ ActiveSupport.on_load(:active_record) do
45
+ ActiveRecord::Base.extend(ActiveRecordProxyAdapters::PostgreSQL::ConnectionHandling)
46
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require "active_record/connection_adapters/trilogy_proxy_adapter"
5
+ rescue LoadError
6
+ # trilogy not available
7
+ return
8
+ end
9
+
10
+ module ActiveRecordProxyAdapters
11
+ module Trilogy
12
+ # Module to extend ActiveRecord::Base with the connection handling methods.
13
+ # Required to make adapter work in ActiveRecord versions <= 7.2.x
14
+ module ConnectionHandling
15
+ def trilogy_proxy_adapter_class
16
+ ActiveRecord::ConnectionAdapters::TrilogyProxyAdapter
17
+ end
18
+
19
+ def trilogy_proxy_connection(config) # rubocop:disable Metrics/MethodLength
20
+ configuration = config.dup
21
+
22
+ # Set FOUND_ROWS capability on the connection so UPDATE queries returns number of rows
23
+ # matched rather than number of rows updated.
24
+ configuration[:found_rows] = true
25
+
26
+ options = [
27
+ configuration[:host],
28
+ configuration[:port],
29
+ configuration[:database],
30
+ configuration[:username],
31
+ configuration[:password],
32
+ configuration[:socket],
33
+ 0
34
+ ]
35
+
36
+ trilogy_proxy_adapter_class.new nil, logger, options, configuration
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ ActiveSupport.on_load(:active_record) do
43
+ ActiveRecord::Base.extend(ActiveRecordProxyAdapters::Trilogy::ConnectionHandling)
44
+ end
@@ -1,61 +1,5 @@
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"
5
-
6
- module ActiveRecordProxyAdapters
7
- # Module to extend ActiveRecord::Base with the connection handling methods.
8
- # Required to make adapter work in ActiveRecord versions <= 7.2.x
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
- end
61
- end
3
+ require "active_record_proxy_adapters/connection_handling/postgresql"
4
+ require "active_record_proxy_adapters/connection_handling/mysql2"
5
+ require "active_record_proxy_adapters/connection_handling/trilogy"
@@ -5,10 +5,7 @@ require "active_support"
5
5
  module ActiveRecordProxyAdapters
6
6
  # Hooks into rails boot process to extend ActiveRecord with the proxy adapter.
7
7
  class Railtie < Rails::Railtie
8
- ActiveSupport.on_load :active_record do
9
- require "active_record_proxy_adapters/connection_handling"
10
- ActiveRecord::Base.extend(ActiveRecordProxyAdapters::ConnectionHandling)
11
- end
8
+ require "active_record_proxy_adapters/connection_handling"
12
9
 
13
10
  config.to_prepare do
14
11
  Rails.autoloaders.each do |autoloader|
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_record_proxy_adapters/mysql2_proxy"
4
+
5
+ module ActiveRecordProxyAdapters
6
+ # Proxy to the Mysql2Proxy, allowing the use of the ActiveRecordProxyAdapters::PrimaryReplicaProxy.
7
+ class TrilogyProxy < Mysql2Proxy
8
+ end
9
+ 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.4.0"
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.4.0
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-25 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activerecord
@@ -62,6 +61,7 @@ extra_rdoc_files: []
62
61
  files:
63
62
  - ".rspec"
64
63
  - ".rubocop.yml"
64
+ - Appraisals
65
65
  - CHANGELOG.md
66
66
  - CODE_OF_CONDUCT.md
67
67
  - Dockerfile
@@ -71,14 +71,27 @@ files:
71
71
  - db/postgresql_structure.sql
72
72
  - docker-compose.yml
73
73
  - docker/postgres_replica/cmd.sh
74
+ - gemfiles/rails_7.0.gemfile
75
+ - gemfiles/rails_7.0.gemfile.lock
76
+ - gemfiles/rails_7.1.gemfile
77
+ - gemfiles/rails_7.1.gemfile.lock
78
+ - gemfiles/rails_7.2.gemfile
79
+ - gemfiles/rails_7.2.gemfile.lock
80
+ - gemfiles/rails_8.0.gemfile
81
+ - gemfiles/rails_8.0.gemfile.lock
74
82
  - lib/active_record/connection_adapters/mysql2_proxy_adapter.rb
75
83
  - lib/active_record/connection_adapters/postgresql_proxy_adapter.rb
84
+ - lib/active_record/connection_adapters/trilogy_proxy_adapter.rb
76
85
  - lib/active_record/tasks/mysql2_proxy_database_tasks.rb
77
86
  - lib/active_record/tasks/postgresql_proxy_database_tasks.rb
87
+ - lib/active_record/tasks/trilogy_proxy_database_tasks.rb
78
88
  - lib/active_record_proxy_adapters.rb
79
89
  - lib/active_record_proxy_adapters/active_record_context.rb
80
90
  - lib/active_record_proxy_adapters/configuration.rb
81
91
  - lib/active_record_proxy_adapters/connection_handling.rb
92
+ - lib/active_record_proxy_adapters/connection_handling/mysql2.rb
93
+ - lib/active_record_proxy_adapters/connection_handling/postgresql.rb
94
+ - lib/active_record_proxy_adapters/connection_handling/trilogy.rb
82
95
  - lib/active_record_proxy_adapters/database_tasks.rb
83
96
  - lib/active_record_proxy_adapters/hijackable.rb
84
97
  - lib/active_record_proxy_adapters/log_subscriber.rb
@@ -86,6 +99,7 @@ files:
86
99
  - lib/active_record_proxy_adapters/postgresql_proxy.rb
87
100
  - lib/active_record_proxy_adapters/primary_replica_proxy.rb
88
101
  - lib/active_record_proxy_adapters/railtie.rb
102
+ - lib/active_record_proxy_adapters/trilogy_proxy.rb
89
103
  - lib/active_record_proxy_adapters/version.rb
90
104
  - postgres_primary.dockerfile
91
105
  - postgres_replica.dockerfile
@@ -99,7 +113,6 @@ metadata:
99
113
  source_code_uri: https://github.com/Nasdaq/active_record_proxy_adapters
100
114
  changelog_uri: https://github.com/Nasdaq/active_record_proxy_adapters/blob/main/CHANGELOG.md
101
115
  rubygems_mfa_required: 'true'
102
- post_install_message:
103
116
  rdoc_options: []
104
117
  require_paths:
105
118
  - lib
@@ -114,8 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
127
  - !ruby/object:Gem::Version
115
128
  version: '0'
116
129
  requirements: []
117
- rubygems_version: 3.5.11
118
- signing_key:
130
+ rubygems_version: 3.6.2
119
131
  specification_version: 4
120
132
  summary: Read replica proxy adapters for ActiveRecord!
121
133
  test_files: []