activerecord-spanner-adapter 2.5.1 → 2.7.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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/acceptance-tests-on-emulator.yaml +19 -15
  3. data/.github/workflows/acceptance-tests-on-production.yaml +13 -6
  4. data/.github/workflows/ci.yaml +18 -14
  5. data/.github/workflows/nightly-acceptance-tests-on-emulator.yaml +19 -15
  6. data/.github/workflows/nightly-acceptance-tests-on-production.yaml +13 -6
  7. data/.github/workflows/nightly-unit-tests.yaml +18 -14
  8. data/.github/workflows/rubocop.yaml +9 -4
  9. data/.github/workflows/samples.yaml +18 -12
  10. data/.gitignore +0 -1
  11. data/.release-please-manifest.json +1 -1
  12. data/.rubocop.yml +2 -0
  13. data/Appraisals +15 -0
  14. data/CHANGELOG.md +19 -0
  15. data/Gemfile +12 -20
  16. data/Gemfile.lock +479 -0
  17. data/README.md +3 -3
  18. data/acceptance/cases/migration/change_table_test.rb +4 -14
  19. data/acceptance/cases/models/generated_column_test.rb +8 -26
  20. data/acceptance/test_helper.rb +10 -22
  21. data/activerecord-spanner-adapter.gemspec +4 -3
  22. data/benchmarks/db/migrate/01_create_tables.rb +1 -1
  23. data/examples/rails/README.md +1 -1
  24. data/examples/snippets/Rakefile +0 -7
  25. data/examples/snippets/array-data-type/db/migrate/01_create_tables.rb +1 -1
  26. data/examples/snippets/batch-dml/db/migrate/01_create_tables.rb +1 -1
  27. data/examples/snippets/bulk-insert/db/migrate/01_create_tables.rb +1 -1
  28. data/examples/snippets/commit-timestamp/db/migrate/01_create_tables.rb +1 -1
  29. data/examples/snippets/create-records/db/migrate/01_create_tables.rb +1 -1
  30. data/examples/snippets/date-data-type/db/migrate/01_create_tables.rb +1 -1
  31. data/examples/snippets/generated-column/db/migrate/01_create_tables.rb +1 -1
  32. data/examples/snippets/hints/db/migrate/01_create_tables.rb +1 -1
  33. data/examples/snippets/interleaved-tables/README.md +2 -5
  34. data/examples/snippets/isolation-level/db/migrate/01_create_tables.rb +1 -1
  35. data/examples/snippets/migrations/db/migrate/01_create_tables.rb +1 -1
  36. data/examples/snippets/mutations/db/migrate/01_create_tables.rb +1 -1
  37. data/examples/snippets/optimistic-locking/db/migrate/01_create_tables.rb +1 -1
  38. data/examples/snippets/partitioned-dml/db/migrate/01_create_tables.rb +1 -1
  39. data/examples/snippets/query-logs/application.rb +3 -3
  40. data/examples/snippets/query-logs/db/migrate/01_create_tables.rb +1 -1
  41. data/examples/snippets/quickstart/db/migrate/01_create_tables.rb +1 -1
  42. data/examples/snippets/read-only-transactions/db/migrate/01_create_tables.rb +1 -1
  43. data/examples/snippets/read-write-transactions/db/migrate/01_create_tables.rb +1 -1
  44. data/examples/snippets/stale-reads/db/migrate/01_create_tables.rb +1 -1
  45. data/examples/snippets/tags/db/migrate/01_create_tables.rb +1 -1
  46. data/examples/snippets/timestamp-data-type/db/migrate/01_create_tables.rb +1 -1
  47. data/gemfiles/7.1.gemfile +18 -0
  48. data/gemfiles/7.1.gemfile.lock +389 -0
  49. data/gemfiles/7.2.gemfile +18 -0
  50. data/gemfiles/7.2.gemfile.lock +479 -0
  51. data/gemfiles/8.0.gemfile +18 -0
  52. data/gemfiles/8.0.gemfile.lock +480 -0
  53. data/gemfiles/8.1.gemfile +18 -0
  54. data/gemfiles/8.1.gemfile.lock +478 -0
  55. data/lib/active_record/connection_adapters/spanner/database_statements.rb +62 -95
  56. data/lib/active_record/connection_adapters/spanner/quoting.rb +0 -22
  57. data/lib/active_record/connection_adapters/spanner/schema_creation.rb +3 -15
  58. data/lib/active_record/connection_adapters/spanner/schema_statements.rb +0 -4
  59. data/lib/active_record/connection_adapters/spanner_adapter.rb +12 -14
  60. data/lib/active_record/type/spanner/spanner_active_record_converter.rb +33 -2
  61. data/lib/activerecord_spanner_adapter/base.rb +5 -27
  62. data/lib/activerecord_spanner_adapter/connection.rb +0 -20
  63. data/lib/activerecord_spanner_adapter/information_schema.rb +1 -4
  64. data/lib/activerecord_spanner_adapter/table.rb +0 -22
  65. data/lib/activerecord_spanner_adapter/version.rb +1 -1
  66. data/lib/arel/visitors/spanner.rb +12 -15
  67. data/lib/spanner_client_ext.rb +6 -2
  68. metadata +30 -20
  69. data/acceptance/cases/interleaved_associations/has_many_associations_using_interleaved_test.rb +0 -221
  70. data/acceptance/cases/models/interleave_test.rb +0 -113
  71. data/acceptance/cases/transactions/optimistic_locking_test.rb +0 -152
  72. data/acceptance/models/album.rb +0 -15
  73. data/acceptance/models/track.rb +0 -23
  74. data/examples/snippets/interleaved-tables-before-7.1/README.md +0 -167
  75. data/examples/snippets/interleaved-tables-before-7.1/Rakefile +0 -13
  76. data/examples/snippets/interleaved-tables-before-7.1/application.rb +0 -122
  77. data/examples/snippets/interleaved-tables-before-7.1/config/database.yml +0 -9
  78. data/examples/snippets/interleaved-tables-before-7.1/db/migrate/01_create_tables.rb +0 -44
  79. data/examples/snippets/interleaved-tables-before-7.1/db/seeds.rb +0 -40
  80. data/examples/snippets/interleaved-tables-before-7.1/models/album.rb +0 -20
  81. data/examples/snippets/interleaved-tables-before-7.1/models/singer.rb +0 -18
  82. data/examples/snippets/interleaved-tables-before-7.1/models/track.rb +0 -28
@@ -28,13 +28,6 @@ end
28
28
  desc "Runs all samples."
29
29
  task :all do
30
30
  samples = fetch_samples
31
- ar_version = ENV.fetch "AR_VERSION", "~> 7.1.0"
32
- less_than_7_1 = ar_version.dup.to_s.sub("~>", "").strip < "7.1.0"
33
- samples.delete "interleaved-tables" if less_than_7_1
34
- samples.delete "interleaved-tables-before-7.1" unless less_than_7_1
35
- samples.delete "bit-reversed-sequence" if less_than_7_1
36
- samples.delete "auto-generated-primary-key" if less_than_7_1
37
- samples.delete "query-logs" if less_than_7_1
38
31
  samples.each do |sample|
39
32
  run_sample sample
40
33
  end
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  # Execute the entire migration as one DDL batch.
10
10
  connection.ddl_batch do
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -1,10 +1,7 @@
1
1
  # Sample - Interleaved Tables
2
2
 
3
- __NOTE__: This example requires Rails 7.1 or later.
4
-
5
- This example shows how to use interleaved tables with the Spanner ActiveRecord adapter in Rails 7.1 and later.
6
- Interleaved tables use composite primary keys. This is only supported by Rails 7.1 and later. For older versions,
7
- you need to use the third-party gem `composite_primary_key` (https://github.com/composite-primary-keys/composite_primary_keys).
3
+ This example shows how to use interleaved tables with the Spanner ActiveRecord adapter.
4
+ Interleaved tables use composite primary keys, which are natively supported in Rails 7.1 and later.
8
5
 
9
6
  See https://cloud.google.com/spanner/docs/schema-and-data-model#creating-interleaved-tables for more information
10
7
  on interleaved tables if you are not familiar with this concept.
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  # Execute the entire migration as one DDL batch.
10
10
  connection.ddl_batch do
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -55,9 +55,9 @@ class Application
55
55
  application: "example-app",
56
56
  action: "run-test-application",
57
57
  pid: -> { Process.pid.to_s },
58
- socket: ->(context) { context[:connection].pool.db_config.socket },
59
- db_host: ->(context) { context[:connection].pool.db_config.host },
60
- database: ->(context) { context[:connection].pool.db_config.database }
58
+ socket: ->(context) { (context[:connection] || ActiveRecord::Base.connection).pool.db_config.socket },
59
+ db_host: ->(context) { (context[:connection] || ActiveRecord::Base.connection).pool.db_config.host },
60
+ database: ->(context) { (context[:connection] || ActiveRecord::Base.connection).pool.db_config.database }
61
61
  }
62
62
  end
63
63
  end
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :singers do |t|
@@ -4,7 +4,7 @@
4
4
  # license that can be found in the LICENSE file or at
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
- class CreateTables < ActiveRecord::Migration[6.0]
7
+ class CreateTables < ActiveRecord::Migration[7.1]
8
8
  def change
9
9
  connection.ddl_batch do
10
10
  create_table :meetings do |t|
@@ -0,0 +1,18 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 7.1.0"
6
+ gem "docker-api"
7
+ gem "irb"
8
+ gem "minitest", "~> 5.27.0"
9
+ gem "minitest-rg", "~> 5.4.0"
10
+ gem "mutex_m"
11
+ gem "ostruct"
12
+ gem "pry", "~> 0.16.0"
13
+ gem "pry-byebug", "~> 3.12.0"
14
+ gem "readline"
15
+ gem "sinatra-activerecord"
16
+ gem "sqlite3"
17
+
18
+ gemspec path: "../"
@@ -0,0 +1,389 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ activerecord-spanner-adapter (2.6.0)
5
+ activerecord (>= 7.1, < 9)
6
+ google-cloud-spanner (~> 2.25)
7
+ google-cloud-spanner-v1 (~> 1.7)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activemodel (7.1.6)
13
+ activesupport (= 7.1.6)
14
+ activerecord (7.1.6)
15
+ activemodel (= 7.1.6)
16
+ activesupport (= 7.1.6)
17
+ timeout (>= 0.4.0)
18
+ activesupport (7.1.6)
19
+ base64
20
+ benchmark (>= 0.3)
21
+ bigdecimal
22
+ concurrent-ruby (~> 1.0, >= 1.0.2)
23
+ connection_pool (>= 2.2.5)
24
+ drb
25
+ i18n (>= 1.6, < 2)
26
+ logger (>= 1.4.2)
27
+ minitest (>= 5.1)
28
+ mutex_m
29
+ securerandom (>= 0.3)
30
+ tzinfo (~> 2.0)
31
+ addressable (2.9.0)
32
+ public_suffix (>= 2.0.2, < 8.0)
33
+ appraisal (2.5.0)
34
+ bundler
35
+ rake
36
+ thor (>= 0.14.0)
37
+ ast (2.4.3)
38
+ autotest-suffix (1.1.0)
39
+ base64 (0.3.0)
40
+ benchmark (0.5.0)
41
+ bigdecimal (3.3.1)
42
+ byebug (13.0.0)
43
+ reline (>= 0.6.0)
44
+ coderay (1.1.3)
45
+ concurrent-ruby (1.3.8)
46
+ connection_pool (3.0.2)
47
+ docile (1.4.1)
48
+ docker-api (2.4.0)
49
+ excon (>= 0.64.0)
50
+ multi_json
51
+ drb (2.2.3)
52
+ erb (6.0.6)
53
+ excon (1.6.0)
54
+ logger
55
+ faraday (2.14.3)
56
+ faraday-net_http (>= 2.0, < 3.5)
57
+ json
58
+ logger
59
+ faraday-net_http (3.4.4)
60
+ net-http (~> 0.5)
61
+ faraday-retry (2.4.0)
62
+ faraday (~> 2.0)
63
+ gapic-common (1.3.0)
64
+ faraday (>= 1.9, < 3.a)
65
+ faraday-retry (>= 1.0, < 3.a)
66
+ google-cloud-env (~> 2.2)
67
+ google-logging-utils (~> 0.1)
68
+ google-protobuf (~> 4.26)
69
+ googleapis-common-protos (~> 1.6)
70
+ googleapis-common-protos-types (~> 1.15)
71
+ googleauth (~> 1.12)
72
+ grpc (~> 1.66)
73
+ google-cloud-core (1.9.0)
74
+ google-cloud-env (>= 1.0, < 3.a)
75
+ google-cloud-errors (~> 1.0)
76
+ google-cloud-env (2.4.0)
77
+ base64 (~> 0.2)
78
+ faraday (>= 1.0, < 3.a)
79
+ google-cloud-errors (1.7.0)
80
+ google-cloud-spanner (2.36.0)
81
+ bigdecimal (~> 3.0)
82
+ concurrent-ruby (~> 1.0)
83
+ google-cloud-core (~> 1.7)
84
+ google-cloud-spanner-admin-database-v1 (~> 1.4)
85
+ google-cloud-spanner-admin-instance-v1 (~> 1.6)
86
+ google-cloud-spanner-v1 (~> 1.6)
87
+ google-cloud-spanner-admin-database-v1 (1.6.1)
88
+ gapic-common (>= 0.25.0, < 2.a)
89
+ google-cloud-errors (~> 1.0)
90
+ grpc-google-iam-v1 (~> 1.1)
91
+ google-cloud-spanner-admin-instance-v1 (1.6.0)
92
+ gapic-common (>= 0.25.0, < 2.a)
93
+ google-cloud-errors (~> 1.0)
94
+ grpc-google-iam-v1 (~> 1.1)
95
+ google-cloud-spanner-v1 (1.19.0)
96
+ gapic-common (~> 1.3)
97
+ google-cloud-errors (~> 1.0)
98
+ google-logging-utils (0.2.0)
99
+ google-protobuf (4.35.1-arm64-darwin)
100
+ bigdecimal
101
+ rake (~> 13.3)
102
+ google-style (1.32.0)
103
+ rubocop (~> 1.76)
104
+ googleapis-common-protos (1.10.0)
105
+ google-protobuf (~> 4.26)
106
+ googleapis-common-protos-types (~> 1.21)
107
+ grpc (~> 1.41)
108
+ googleapis-common-protos-types (1.23.0)
109
+ google-protobuf (~> 4.26)
110
+ googleauth (1.17.3)
111
+ faraday (>= 1.0, < 3.a)
112
+ google-cloud-env (~> 2.2)
113
+ google-logging-utils (~> 0.1)
114
+ jwt (>= 1.4, < 4.0)
115
+ os (>= 0.9, < 2.0)
116
+ pstore (~> 0.1)
117
+ signet (>= 0.16, < 2.a)
118
+ grpc (1.83.0-arm64-darwin)
119
+ google-protobuf (>= 3.25, < 5.0)
120
+ googleapis-common-protos-types (~> 1.0)
121
+ grpc-google-iam-v1 (1.10.0)
122
+ google-protobuf (>= 3.18, < 5.a)
123
+ googleapis-common-protos (~> 1.4)
124
+ grpc (~> 1.41)
125
+ i18n (1.15.2)
126
+ concurrent-ruby (~> 1.0)
127
+ io-console (0.8.2)
128
+ irb (1.18.0)
129
+ pp (>= 0.6.0)
130
+ prism (>= 1.3.0)
131
+ rdoc (>= 4.0.0)
132
+ reline (>= 0.4.2)
133
+ json (2.21.2)
134
+ jwt (3.2.0)
135
+ base64
136
+ language_server-protocol (3.17.0.6)
137
+ lint_roller (1.1.0)
138
+ logger (1.7.0)
139
+ method_source (1.1.0)
140
+ minitest (5.27.0)
141
+ minitest-autotest (1.2.0)
142
+ minitest-server (~> 1.0)
143
+ path_expander (~> 2.0)
144
+ minitest-focus (1.4.1)
145
+ minitest (> 5.0)
146
+ minitest-rg (5.4.0)
147
+ minitest (>= 5.0, < 7)
148
+ minitest-server (1.0.10)
149
+ drb (~> 2.0)
150
+ minitest (~> 5.16)
151
+ multi_json (1.21.1)
152
+ mustermann (3.1.1)
153
+ mutex_m (0.3.0)
154
+ net-http (0.9.1)
155
+ uri (>= 0.11.1)
156
+ os (1.1.4)
157
+ ostruct (0.6.3)
158
+ parallel (1.28.0)
159
+ parser (3.3.12.0)
160
+ ast (~> 2.4.1)
161
+ racc
162
+ path_expander (2.0.1)
163
+ pp (0.6.4)
164
+ prettyprint
165
+ prettyprint (0.2.0)
166
+ prism (1.9.0)
167
+ pry (0.16.0)
168
+ coderay (~> 1.1)
169
+ method_source (~> 1.0)
170
+ reline (>= 0.6.0)
171
+ pry-byebug (3.12.0)
172
+ byebug (~> 13.0)
173
+ pry (>= 0.13, < 0.17)
174
+ pstore (0.2.1)
175
+ public_suffix (7.0.5)
176
+ racc (1.8.1)
177
+ rack (3.2.6)
178
+ rack-protection (4.2.1)
179
+ base64 (>= 0.1.0)
180
+ logger (>= 1.6.0)
181
+ rack (>= 3.0.0, < 4)
182
+ rack-session (2.1.2)
183
+ base64 (>= 0.1.0)
184
+ rack (>= 3.0.0)
185
+ rainbow (3.1.1)
186
+ rake (13.4.2)
187
+ rbs (4.1.1)
188
+ logger
189
+ prism (>= 1.6.0)
190
+ tsort
191
+ rdoc (8.0.0)
192
+ erb
193
+ prism (>= 1.6.0)
194
+ rbs (>= 4.0.0)
195
+ tsort
196
+ readline (0.0.4)
197
+ reline
198
+ redcarpet (3.6.1)
199
+ regexp_parser (2.12.0)
200
+ reline (0.6.3)
201
+ io-console (~> 0.5)
202
+ rubocop (1.88.2)
203
+ json (~> 2.3)
204
+ language_server-protocol (~> 3.17.0.2)
205
+ lint_roller (~> 1.1.0)
206
+ parallel (>= 1.10)
207
+ parser (>= 3.3.0.2)
208
+ rainbow (>= 2.2.2, < 4.0)
209
+ regexp_parser (>= 2.9.3, < 3.0)
210
+ rubocop-ast (>= 1.49.0, < 2.0)
211
+ ruby-progressbar (~> 1.7)
212
+ unicode-display_width (>= 2.4.0, < 4.0)
213
+ rubocop-ast (1.50.0)
214
+ parser (>= 3.3.7.2)
215
+ prism (~> 1.7)
216
+ ruby-progressbar (1.13.0)
217
+ securerandom (0.4.1)
218
+ signet (0.22.0)
219
+ addressable (~> 2.8)
220
+ faraday (>= 0.17.5, < 3.a)
221
+ jwt (>= 1.5, < 4.0)
222
+ simplecov (0.22.0)
223
+ docile (~> 1.1)
224
+ simplecov-html (~> 0.11)
225
+ simplecov_json_formatter (~> 0.1)
226
+ simplecov-html (0.13.2)
227
+ simplecov_json_formatter (0.1.4)
228
+ sinatra (4.2.1)
229
+ logger (>= 1.6.0)
230
+ mustermann (~> 3.0)
231
+ rack (>= 3.0.0, < 4)
232
+ rack-protection (= 4.2.1)
233
+ rack-session (>= 2.0.0, < 3)
234
+ tilt (~> 2.0)
235
+ sinatra-activerecord (2.0.28)
236
+ activerecord (>= 4.1)
237
+ sinatra (>= 1.0)
238
+ sqlite3 (2.9.5-arm64-darwin)
239
+ thor (1.5.0)
240
+ tilt (2.8.0)
241
+ timeout (0.6.1)
242
+ tsort (0.2.0)
243
+ tzinfo (2.0.6)
244
+ concurrent-ruby (~> 1.0)
245
+ unicode-display_width (3.2.0)
246
+ unicode-emoji (~> 4.1)
247
+ unicode-emoji (4.2.0)
248
+ uri (1.1.1)
249
+ yard (0.9.45)
250
+ yard-doctest (0.1.17)
251
+ minitest
252
+ yard
253
+
254
+ PLATFORMS
255
+ arm64-darwin
256
+
257
+ DEPENDENCIES
258
+ activerecord (~> 7.1.0)
259
+ activerecord-spanner-adapter!
260
+ appraisal (~> 2.5)
261
+ autotest-suffix (~> 1.1)
262
+ bundler (>= 2.0, < 5.0)
263
+ docker-api
264
+ google-style (~> 1.32.0)
265
+ irb
266
+ minitest (~> 5.27.0)
267
+ minitest-autotest (~> 1.0)
268
+ minitest-focus (~> 1.1)
269
+ minitest-rg (~> 5.4.0)
270
+ mutex_m
271
+ ostruct
272
+ pry (~> 0.16.0)
273
+ pry-byebug (~> 3.12.0)
274
+ rake (~> 13.0)
275
+ readline
276
+ redcarpet (~> 3.0)
277
+ simplecov (~> 0.9)
278
+ sinatra-activerecord
279
+ sqlite3
280
+ yard (~> 0.9)
281
+ yard-doctest (~> 0.1.13)
282
+
283
+ CHECKSUMS
284
+ activemodel (7.1.6)
285
+ activerecord (7.1.6)
286
+ activerecord-spanner-adapter (2.6.0)
287
+ activesupport (7.1.6)
288
+ addressable (2.9.0)
289
+ appraisal (2.5.0)
290
+ ast (2.4.3)
291
+ autotest-suffix (1.1.0)
292
+ base64 (0.3.0)
293
+ benchmark (0.5.0)
294
+ bigdecimal (3.3.1)
295
+ bundler (4.0.14) sha256=d09a0a965cf772266a7e49e83610be7c2f4e49e61134c42a56804bb383cc24b8
296
+ byebug (13.0.0)
297
+ coderay (1.1.3)
298
+ concurrent-ruby (1.3.8)
299
+ connection_pool (3.0.2)
300
+ docile (1.4.1)
301
+ docker-api (2.4.0)
302
+ drb (2.2.3)
303
+ erb (6.0.6)
304
+ excon (1.6.0)
305
+ faraday (2.14.3)
306
+ faraday-net_http (3.4.4)
307
+ faraday-retry (2.4.0)
308
+ gapic-common (1.3.0)
309
+ google-cloud-core (1.9.0)
310
+ google-cloud-env (2.4.0)
311
+ google-cloud-errors (1.7.0)
312
+ google-cloud-spanner (2.36.0)
313
+ google-cloud-spanner-admin-database-v1 (1.6.1)
314
+ google-cloud-spanner-admin-instance-v1 (1.6.0)
315
+ google-cloud-spanner-v1 (1.19.0)
316
+ google-logging-utils (0.2.0)
317
+ google-protobuf (4.35.1-arm64-darwin)
318
+ google-style (1.32.0)
319
+ googleapis-common-protos (1.10.0)
320
+ googleapis-common-protos-types (1.23.0)
321
+ googleauth (1.17.3)
322
+ grpc (1.83.0-arm64-darwin)
323
+ grpc-google-iam-v1 (1.10.0)
324
+ i18n (1.15.2)
325
+ io-console (0.8.2)
326
+ irb (1.18.0)
327
+ json (2.21.2)
328
+ jwt (3.2.0)
329
+ language_server-protocol (3.17.0.6)
330
+ lint_roller (1.1.0)
331
+ logger (1.7.0)
332
+ method_source (1.1.0)
333
+ minitest (5.27.0)
334
+ minitest-autotest (1.2.0)
335
+ minitest-focus (1.4.1)
336
+ minitest-rg (5.4.0)
337
+ minitest-server (1.0.10)
338
+ multi_json (1.21.1)
339
+ mustermann (3.1.1)
340
+ mutex_m (0.3.0)
341
+ net-http (0.9.1)
342
+ os (1.1.4)
343
+ ostruct (0.6.3)
344
+ parallel (1.28.0)
345
+ parser (3.3.12.0)
346
+ path_expander (2.0.1)
347
+ pp (0.6.4)
348
+ prettyprint (0.2.0)
349
+ prism (1.9.0)
350
+ pry (0.16.0)
351
+ pry-byebug (3.12.0)
352
+ pstore (0.2.1)
353
+ public_suffix (7.0.5)
354
+ racc (1.8.1)
355
+ rack (3.2.6)
356
+ rack-protection (4.2.1)
357
+ rack-session (2.1.2)
358
+ rainbow (3.1.1)
359
+ rake (13.4.2)
360
+ rbs (4.1.1)
361
+ rdoc (8.0.0)
362
+ readline (0.0.4)
363
+ redcarpet (3.6.1)
364
+ regexp_parser (2.12.0)
365
+ reline (0.6.3)
366
+ rubocop (1.88.2)
367
+ rubocop-ast (1.50.0)
368
+ ruby-progressbar (1.13.0)
369
+ securerandom (0.4.1)
370
+ signet (0.22.0)
371
+ simplecov (0.22.0)
372
+ simplecov-html (0.13.2)
373
+ simplecov_json_formatter (0.1.4)
374
+ sinatra (4.2.1)
375
+ sinatra-activerecord (2.0.28)
376
+ sqlite3 (2.9.5-arm64-darwin)
377
+ thor (1.5.0)
378
+ tilt (2.8.0)
379
+ timeout (0.6.1)
380
+ tsort (0.2.0)
381
+ tzinfo (2.0.6)
382
+ unicode-display_width (3.2.0)
383
+ unicode-emoji (4.2.0)
384
+ uri (1.1.1)
385
+ yard (0.9.45)
386
+ yard-doctest (0.1.17)
387
+
388
+ BUNDLED WITH
389
+ 4.0.14
@@ -0,0 +1,18 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 7.2.0"
6
+ gem "docker-api"
7
+ gem "irb"
8
+ gem "minitest", "~> 5.27.0"
9
+ gem "minitest-rg", "~> 5.4.0"
10
+ gem "mutex_m"
11
+ gem "ostruct"
12
+ gem "pry", "~> 0.16.0"
13
+ gem "pry-byebug", "~> 3.12.0"
14
+ gem "readline"
15
+ gem "sinatra-activerecord"
16
+ gem "sqlite3"
17
+
18
+ gemspec path: "../"