pgtk 0.29.3 → 0.29.4

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: ed1f139f521063e30992649b32a67bc125d5cd2ae549e56da21c0e88b600455b
4
- data.tar.gz: 3994612c8c3856d246e6a28a5656e23033aa4cfe8433ca6d8d75dfaaa7d5d41b
3
+ metadata.gz: 296344ebe7c8fbd455e8c8276e5d4ce27765974b83a16ef001b4d699f7d63977
4
+ data.tar.gz: df63b7c1b2efdd245c4e167d70cbb85d1c4ecde026a402b51687256bb1d76695
5
5
  SHA512:
6
- metadata.gz: a5957d0bb3e4921d457726aaae131ee0356f5aac2cfe8dcd0d2df658742822026fd84f098c6da3d62078d27bf70bc3096b98d7a9c625f5464f1d5efb51ce3874
7
- data.tar.gz: 9294d02de72588841dac47a066b7833e25bd0532d5c3a92a3f7ac7d1f59acd1b51277f1f127c897cae023b57dceea6e4a210bc2dcedcab416db8518397bd0709
6
+ metadata.gz: 969917c4590972ecfbda2701f1275d9ba3b0f8d63d4ff3492068509d22914a0c56fac94d4999703d0f03dbe4a2bf1a5d5d7371b77c31ca852bed47c72606ef84
7
+ data.tar.gz: 204bdc905dc18bf7addba0e01b4689b88a2d039cfbb96e77d3c5ed18a6c96e18b27d4f4a8fc38b62e4028f51c0690ccbeebf7d6a8ca3f269d45135cf3049a884
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  source 'https://rubygems.org'
@@ -10,6 +10,8 @@ gem 'minitest', '~>6.0', require: false
10
10
  gem 'minitest-mock', '~>5.27', require: false
11
11
  gem 'minitest-reporters', '~>1.7', require: false
12
12
  gem 'minitest-stub-const', '~>0.6', require: false
13
+ gem 'os', '~>1.1', require: false
14
+ gem 'qbash', '~>0.0', require: false
13
15
  gem 'rack', '~>3.1', require: false
14
16
  gem 'rake', '~>13.2', require: false
15
17
  gem 'rubocop', '~>1.73', require: false
data/Gemfile.lock CHANGED
@@ -4,6 +4,7 @@ PATH
4
4
  pgtk (0.0.0)
5
5
  backtrace (~> 0.4)
6
6
  concurrent-ruby (~> 1.3)
7
+ donce (~> 0.0)
7
8
  joined (~> 0.3)
8
9
  logger (~> 1.7)
9
10
  loog (~> 0.6)
@@ -23,17 +24,23 @@ GEM
23
24
  concurrent-ruby (1.3.6)
24
25
  differ (0.1.2)
25
26
  docile (1.4.1)
26
- elapsed (0.2.1)
27
+ donce (0.6.0)
28
+ backtrace (~> 0.3)
29
+ os (~> 1.1)
30
+ qbash (~> 0.3)
31
+ elapsed (0.2.2)
27
32
  loog (~> 0.6)
28
33
  tago (~> 0.1)
34
+ ellipsized (0.3.0)
29
35
  joined (0.4.0)
30
36
  json (2.18.0)
31
37
  language_server-protocol (3.17.0.5)
32
38
  lint_roller (1.1.0)
33
39
  logger (1.7.0)
34
- loog (0.6.1)
40
+ loog (0.7.2)
41
+ ellipsized
35
42
  logger (~> 1.0)
36
- minitest (6.0.0)
43
+ minitest (6.0.1)
37
44
  prism (~> 1.5)
38
45
  minitest-mock (5.27.0)
39
46
  minitest-reporters (1.7.1)
@@ -42,21 +49,22 @@ GEM
42
49
  minitest (>= 5.0)
43
50
  ruby-progressbar
44
51
  minitest-stub-const (0.6)
45
- nokogiri (1.18.10-arm64-darwin)
52
+ nokogiri (1.19.0-arm64-darwin)
46
53
  racc (~> 1.4)
47
- nokogiri (1.18.10-x64-mingw-ucrt)
54
+ nokogiri (1.19.0-x64-mingw-ucrt)
48
55
  racc (~> 1.4)
49
- nokogiri (1.18.10-x86_64-linux-gnu)
56
+ nokogiri (1.19.0-x86_64-linux-gnu)
50
57
  racc (~> 1.4)
58
+ os (1.1.4)
51
59
  parallel (1.27.0)
52
- parser (3.3.10.0)
60
+ parser (3.3.10.1)
53
61
  ast (~> 2.4.1)
54
62
  racc
55
- pg (1.6.2-arm64-darwin)
56
- pg (1.6.2-x64-mingw-ucrt)
57
- pg (1.6.2-x86_64-linux)
58
- prism (1.7.0)
59
- qbash (0.4.8)
63
+ pg (1.6.3-arm64-darwin)
64
+ pg (1.6.3-x64-mingw-ucrt)
65
+ pg (1.6.3-x86_64-linux)
66
+ prism (1.8.0)
67
+ qbash (0.7.1)
60
68
  backtrace (> 0)
61
69
  elapsed (> 0)
62
70
  loog (> 0)
@@ -69,7 +77,7 @@ GEM
69
77
  tago (~> 0.0)
70
78
  regexp_parser (2.11.3)
71
79
  rexml (3.4.4)
72
- rubocop (1.82.0)
80
+ rubocop (1.84.0)
73
81
  json (~> 2.3)
74
82
  language_server-protocol (~> 3.17.0.2)
75
83
  lint_roller (~> 1.1.0)
@@ -77,12 +85,12 @@ GEM
77
85
  parser (>= 3.3.0.2)
78
86
  rainbow (>= 2.2.2, < 4.0)
79
87
  regexp_parser (>= 2.9.3, < 3.0)
80
- rubocop-ast (>= 1.48.0, < 2.0)
88
+ rubocop-ast (>= 1.49.0, < 2.0)
81
89
  ruby-progressbar (~> 1.7)
82
90
  unicode-display_width (>= 2.4.0, < 4.0)
83
- rubocop-ast (1.48.0)
91
+ rubocop-ast (1.49.0)
84
92
  parser (>= 3.3.7.2)
85
- prism (~> 1.4)
93
+ prism (~> 1.7)
86
94
  rubocop-minitest (0.38.2)
87
95
  lint_roller (~> 1.1)
88
96
  rubocop (>= 1.75.0, < 2.0)
@@ -105,7 +113,7 @@ GEM
105
113
  simplecov-html (0.13.2)
106
114
  simplecov_json_formatter (0.1.4)
107
115
  slop (4.10.1)
108
- tago (0.6.0)
116
+ tago (0.7.0)
109
117
  threads (0.5.0)
110
118
  backtrace (~> 0)
111
119
  concurrent-ruby (~> 1.0)
@@ -133,7 +141,9 @@ DEPENDENCIES
133
141
  minitest-mock (~> 5.27)
134
142
  minitest-reporters (~> 1.7)
135
143
  minitest-stub-const (~> 0.6)
144
+ os (~> 1.1)
136
145
  pgtk!
146
+ qbash (~> 0.0)
137
147
  rack (~> 3.1)
138
148
  rake (~> 13.2)
139
149
  rubocop (~> 1.73)
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2019-2025 Yegor Bugayenko
3
+ Copyright (c) 2019-2026 Yegor Bugayenko
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/LICENSES/MIT.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2019-2025 Yegor Bugayenko
3
+ Copyright (c) 2019-2026 Yegor Bugayenko
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/README.md CHANGED
@@ -7,7 +7,6 @@
7
7
  [![rake](https://github.com/yegor256/pgtk/actions/workflows/rake.yml/badge.svg)](https://github.com/yegor256/pgtk/actions/workflows/rake.yml)
8
8
  [![PDD status](https://www.0pdd.com/svg?name=yegor256/pgtk)](https://www.0pdd.com/p?name=yegor256/pgtk)
9
9
  [![Gem Version](https://badge.fury.io/rb/pgtk.svg)](https://badge.fury.io/rb/pgtk)
10
- [![Maintainability](https://api.codeclimate.com/v1/badges/3a5bebac001e5288b00d/maintainability)](https://codeclimate.com/github/yegor256/pgtk/maintainability)
11
10
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/pgtk/blob/master/LICENSE.txt)
12
11
  [![Test Coverage](https://img.shields.io/codecov/c/github/yegor256/pgtk.svg)](https://codecov.io/github/yegor256/pgtk?branch=master)
13
12
  [![Hits-of-Code](https://hitsofcode.com/github/yegor256/pgtk)](https://hitsofcode.com/view/github/yegor256/pgtk)
data/Rakefile CHANGED
@@ -1,8 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
+ require 'os'
7
+ require 'qbash'
6
8
  require 'rubygems'
7
9
  require 'rake'
8
10
  require 'rake/clean'
@@ -15,7 +17,7 @@ def version
15
17
  Gem::Specification.load(Dir['*.gemspec'].first).version
16
18
  end
17
19
 
18
- task default: %i[clean test rubocop xcop yard]
20
+ task default: %i[clean test picks rubocop xcop yard]
19
21
 
20
22
  require 'rake/testtask'
21
23
  desc 'Run all unit tests'
@@ -26,6 +28,16 @@ Rake::TestTask.new(:test) do |test|
26
28
  test.verbose = false
27
29
  end
28
30
 
31
+ desc 'Run them via Ruby, one by one'
32
+ task :picks do
33
+ next if OS.windows?
34
+ %w[lib].each do |d|
35
+ Dir["#{d}/**/*.rb"].each do |f|
36
+ qbash("bundle exec ruby #{Shellwords.escape(f)}", stdout: $stdout, env: { 'PICKS' => 'yes' })
37
+ end
38
+ end
39
+ end
40
+
29
41
  require 'yard'
30
42
  desc 'Build Yard documentation'
31
43
  YARD::Rake::YardocTask.new do |t|
data/cucumber.yml CHANGED
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
  ---
4
4
  default: --format pretty
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'securerandom'
@@ -51,7 +51,7 @@ require_relative '../pgtk'
51
51
  # spy.exec('SELECT * FROM users')
52
52
  #
53
53
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
54
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
54
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
55
55
  # License:: MIT
56
56
  class Pgtk::Impatient
57
57
  # If timed out
@@ -1,9 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
+ require 'donce'
6
7
  require 'English'
8
+ require 'loog'
9
+ require 'os'
7
10
  require 'qbash'
8
11
  require 'rake'
9
12
  require 'rake/tasklib'
@@ -13,7 +16,7 @@ require_relative '../pgtk'
13
16
 
14
17
  # Liquibase rake task.
15
18
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
16
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
19
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
17
20
  # License:: MIT
18
21
  class Pgtk::LiquibaseTask < Rake::TaskLib
19
22
  # Task name
@@ -99,47 +102,53 @@ class Pgtk::LiquibaseTask < Rake::TaskLib
99
102
  raise "The 'password' is not set in the config (YAML)" if password.nil?
100
103
  Dir.chdir(File.dirname(@master)) do
101
104
  qbash(
102
- [
103
- 'mvn', 'verify',
104
- '--errors',
105
- '--batch-mode',
106
- '--fail-fast',
107
- @quiet ? '--quiet' : '--debug',
108
- '--file',
109
- Shellwords.escape(pom),
110
- '--define',
111
- "liquibase.version=#{@liquibase_version}",
112
- '--define',
113
- "postgresql.version=#{@postgresql_version}",
114
- '--define',
115
- Shellwords.escape("liquibase.searchPath=#{File.dirname(@master)}"),
116
- '--define',
117
- Shellwords.escape("liquibase.changeLogFile=#{old ? @master : File.basename(@master)}"),
118
- '--define',
119
- Shellwords.escape("liquibase.url=#{url}"),
120
- '--define',
121
- Shellwords.escape("liquibase.password=#{password}"),
122
- '--define',
123
- Shellwords.escape("liquibase.contexts=#{@contexts}")
124
- ]
105
+ 'mvn', 'verify',
106
+ '--errors',
107
+ '--batch-mode',
108
+ '--fail-fast',
109
+ @quiet ? '--quiet' : '--debug',
110
+ '--file',
111
+ Shellwords.escape(pom),
112
+ '--define',
113
+ "liquibase.version=#{@liquibase_version}",
114
+ '--define',
115
+ "postgresql.version=#{@postgresql_version}",
116
+ '--define',
117
+ Shellwords.escape("liquibase.searchPath=#{File.dirname(@master)}"),
118
+ '--define',
119
+ Shellwords.escape("liquibase.changeLogFile=#{old ? @master : File.basename(@master)}"),
120
+ '--define',
121
+ Shellwords.escape("liquibase.url=#{url}"),
122
+ '--define',
123
+ Shellwords.escape("liquibase.password=#{password}"),
124
+ '--define',
125
+ Shellwords.escape("liquibase.contexts=#{@contexts}"),
126
+ stdout: @quiet ? Loog::NULL : Loog::REGULAR,
127
+ stderr: Loog::REGULAR
125
128
  )
126
129
  end
127
130
  return unless @schema
128
131
  @schema = File.expand_path(@schema)
132
+ host = yml.dig('pgsql', 'host')
133
+ host = donce_host if OS.mac? && ['localhost', '127.0.0.1'].include?(host)
129
134
  Dir.chdir(File.dirname(@schema)) do
130
- qbash(
131
- [
135
+ out = donce(
136
+ image: 'postgres:18.1',
137
+ args: OS.mac? ? '' : '--network=host',
138
+ env: { 'PGPASSWORD' => password },
139
+ command: [
132
140
  'pg_dump',
133
- "-h #{Shellwords.escape(yml.dig('pgsql', 'host'))}",
134
- "-p #{Shellwords.escape(yml.dig('pgsql', 'port'))}",
135
- "-U #{Shellwords.escape(yml.dig('pgsql', 'user'))}",
136
- "-d #{Shellwords.escape(yml.dig('pgsql', 'dbname'))}",
137
- '-n public',
138
- '--schema-only',
139
- "-f #{Shellwords.escape(@schema)}"
140
- ],
141
- env: { 'PGPASSWORD' => Shellwords.escape(password) }
141
+ '-h', host,
142
+ '-p', yml.dig('pgsql', 'port').to_s,
143
+ '-U', yml.dig('pgsql', 'user'),
144
+ '-d', yml.dig('pgsql', 'dbname'),
145
+ '-n', 'public',
146
+ '--schema-only'
147
+ ].shelljoin,
148
+ stdout: @quiet ? Loog::NULL : Loog::REGULAR,
149
+ stderr: Loog::REGULAR
142
150
  )
151
+ File.write(@schema, out)
143
152
  end
144
153
  end
145
154
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'nokogiri'
@@ -9,7 +9,7 @@ require_relative '../pgtk'
9
9
 
10
10
  # Liquicheck rake task for check Liquibase XML files.
11
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
12
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
12
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
13
13
  # License:: MIT
14
14
  class Pgtk::LiquicheckTask < Rake::TaskLib
15
15
  # Task name
@@ -113,6 +113,8 @@ class Pgtk::LiquicheckTask < Rake::TaskLib
113
113
  (raise MustError, msg) unless prop.match?(regex)
114
114
  end
115
115
 
116
- MustError = Class.new(StandardError)
116
+ class MustError < StandardError
117
+ # empty by design
118
+ end
117
119
  private_constant :MustError
118
120
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'cgi'
@@ -18,7 +18,7 @@ require_relative '../pgtk'
18
18
 
19
19
  # Pgsql rake task.
20
20
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
21
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
21
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
22
22
  # License:: MIT
23
23
  class Pgtk::PgsqlTask < Rake::TaskLib
24
24
  # Task name
@@ -145,25 +145,26 @@ class Pgtk::PgsqlTask < Rake::TaskLib
145
145
  FileUtils.mkdir_p(home)
146
146
  out =
147
147
  qbash(
148
- [
149
- 'docker',
150
- 'run',
151
- "--publish #{port}:5432",
152
- "-e POSTGRES_USER=#{Shellwords.escape(@user)}",
153
- "-e POSTGRES_PASSWORD=#{Shellwords.escape(@password)}",
154
- "-e POSTGRES_DB=#{Shellwords.escape(@dbname)}",
155
- '--detach',
156
- '--rm',
157
- 'postgres:18.1',
158
- @config.map { |k, v| "-c #{Shellwords.escape("#{k}=#{v}")}" }
159
- ],
160
- log: stdout
148
+ 'docker',
149
+ 'run',
150
+ "--publish #{Shellwords.escape("#{port}:5432")}",
151
+ "-e POSTGRES_USER=#{Shellwords.escape(@user)}",
152
+ "-e POSTGRES_PASSWORD=#{Shellwords.escape(@password)}",
153
+ "-e POSTGRES_DB=#{Shellwords.escape(@dbname)}",
154
+ '--detach',
155
+ '--rm',
156
+ 'postgres:18.1',
157
+ @config.map { |k, v| "-c #{Shellwords.escape("#{k}=#{v}")}" },
158
+ stdout:
161
159
  )
162
160
  container = out.scan(/[a-f0-9]+\Z/).first
163
161
  File.write(File.join(home, 'docker-container'), container)
164
162
  at_exit do
165
- if qbash("docker ps --format '{{.ID}}' --no-trunc | grep '#{container}'", both: true, accept: nil)[1].zero?
166
- qbash("docker stop #{container}")
163
+ if qbash(
164
+ "docker ps --format '{{.ID}}' --no-trunc | grep '#{Shellwords.escape(container)}'",
165
+ both: true, accept: nil
166
+ )[1].zero?
167
+ qbash("docker stop #{Shellwords.escape(container)}")
167
168
  puts "PostgreSQL docker container #{container.inspect} was stopped" unless @quiet
168
169
  end
169
170
  end
@@ -179,17 +180,16 @@ class Pgtk::PgsqlTask < Rake::TaskLib
179
180
  Tempfile.open do |pwfile|
180
181
  File.write(pwfile.path, @password)
181
182
  qbash(
182
- [
183
- 'initdb',
184
- '--auth=trust',
185
- '-D',
186
- Shellwords.escape(home),
187
- '--username',
188
- Shellwords.escape(@user),
189
- '--pwfile',
190
- Shellwords.escape(pwfile.path)
191
- ],
192
- log: stdout
183
+ 'initdb',
184
+ '--auth=trust',
185
+ '--locale=en_US.UTF-8',
186
+ '-D',
187
+ Shellwords.escape(home),
188
+ '--username',
189
+ Shellwords.escape(@user),
190
+ '--pwfile',
191
+ Shellwords.escape(pwfile.path),
192
+ stdout:
193
193
  )
194
194
  end
195
195
  cmd = [
@@ -206,7 +206,7 @@ class Pgtk::PgsqlTask < Rake::TaskLib
206
206
  )
207
207
  File.write(File.join(@dir, 'pid'), pid)
208
208
  at_exit do
209
- qbash("kill -TERM #{pid}", log: stdout)
209
+ qbash("kill -TERM #{Shellwords.escape(pid)}", stdout:)
210
210
  puts "PostgreSQL killed in PID #{pid}" unless @quiet
211
211
  end
212
212
  begin
@@ -218,14 +218,12 @@ class Pgtk::PgsqlTask < Rake::TaskLib
218
218
  raise "Failed to start PostgreSQL database server on port #{port}: #{e.message}"
219
219
  end
220
220
  qbash(
221
- [
222
- 'createdb',
223
- '--host', 'localhost',
224
- '--port', Shellwords.escape(port),
225
- '--username', Shellwords.escape(@user),
226
- Shellwords.escape(@dbname)
227
- ],
228
- log: stdout
221
+ 'createdb',
222
+ '--host', 'localhost',
223
+ '--port', Shellwords.escape(port),
224
+ '--username', Shellwords.escape(@user),
225
+ Shellwords.escape(@dbname),
226
+ stdout:
229
227
  )
230
228
  pid
231
229
  end
data/lib/pgtk/pool.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'pg'
@@ -46,7 +46,7 @@ require_relative 'wire'
46
46
  # end
47
47
  #
48
48
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
49
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
49
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
50
50
  # License:: MIT
51
51
  class Pgtk::Pool
52
52
  # Constructor.
data/lib/pgtk/retry.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../pgtk'
@@ -45,7 +45,7 @@ require_relative '../pgtk'
45
45
  # end
46
46
  #
47
47
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
48
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
48
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
49
49
  # License:: MIT
50
50
  class Pgtk::Retry
51
51
  # Constructor.
data/lib/pgtk/spy.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'pg'
@@ -44,7 +44,7 @@ require_relative 'wire'
44
44
  # puts "First query: #{queries.first}"
45
45
  #
46
46
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
47
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
47
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
48
48
  # License:: MIT
49
49
  class Pgtk::Spy
50
50
  # Constructor.
data/lib/pgtk/stash.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'concurrent-ruby'
@@ -26,7 +26,7 @@ require_relative '../pgtk'
26
26
  # result = stash.exec('SELECT * FROM users WHERE id = $1', [42])
27
27
  #
28
28
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
29
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
29
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
30
30
  # License:: MIT
31
31
  class Pgtk::Stash
32
32
  MODS = %w[INSERT DELETE UPDATE LOCK VACUUM TRANSACTION COMMIT ROLLBACK REINDEX TRUNCATE CREATE ALTER DROP SET].freeze
data/lib/pgtk/version.rb CHANGED
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../pgtk'
7
7
 
8
8
  # Pgtk version.
9
9
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
10
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
10
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
11
11
  # License:: MIT
12
12
  module Pgtk
13
13
  # Current version of the library.
14
- VERSION = '0.29.3'
14
+ VERSION = '0.29.4' unless defined?(VERSION)
15
15
  end
data/lib/pgtk/wire.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'pg'
@@ -10,14 +10,14 @@ require_relative '../pgtk'
10
10
 
11
11
  # Wires.
12
12
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
13
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
13
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
14
14
  # License:: MIT
15
15
  module Pgtk::Wire
16
16
  end
17
17
 
18
18
  # Simple wire with details.
19
19
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
20
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
20
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
21
21
  # License:: MIT
22
22
  class Pgtk::Wire::Direct
23
23
  # Constructor.
@@ -53,7 +53,7 @@ end
53
53
  # postgres://user:password@host:port/dbname
54
54
  #
55
55
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
56
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
56
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
57
57
  # License:: MIT
58
58
  class Pgtk::Wire::Env
59
59
  # Constructor.
@@ -81,7 +81,7 @@ end
81
81
 
82
82
  # Using configuration from YAML file.
83
83
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
84
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
84
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
85
85
  # License:: MIT
86
86
  class Pgtk::Wire::Yaml
87
87
  # Constructor.
data/lib/pgtk.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Pgtk main module.
7
7
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
8
- # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
8
+ # Copyright:: Copyright (c) 2019-2026 Yegor Bugayenko
9
9
  # License:: MIT
10
10
  module Pgtk
11
11
  # Nothing here.
data/pgtk.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'English'
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
29
29
  s.add_dependency 'backtrace', '~>0.4'
30
30
  s.add_dependency 'concurrent-ruby', '~>1.3'
31
+ s.add_dependency 'donce', '~>0.0'
31
32
  s.add_dependency 'joined', '~>0.3'
32
33
  s.add_dependency 'logger', '~>1.7'
33
34
  s.add_dependency 'loog', '~>0.6'
data/resources/pom.xml CHANGED
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <!--
3
- * SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ * SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  * SPDX-License-Identifier: MIT
5
5
  -->
6
6
  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -10,7 +10,7 @@
10
10
  <version>0.0.0</version>
11
11
  <packaging>pom</packaging>
12
12
  <properties>
13
- <postgresql.version>42.7.8</postgresql.version>
13
+ <postgresql.version>42.7.9</postgresql.version>
14
14
  <liquibase.version>5.0.1</liquibase.version>
15
15
  </properties>
16
16
  <dependencies>
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <!--
3
- * SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ * SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  * SPDX-License-Identifier: MIT
5
5
  -->
6
6
  <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd" logicalFilePath="001-initial-schema.xml">
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <!--
3
- * SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
3
+ * SPDX-FileCopyrightText: Copyright (c) 2019-2026 Yegor Bugayenko
4
4
  * SPDX-License-Identifier: MIT
5
5
  -->
6
6
  <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgtk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.3
4
+ version: 0.29.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
@@ -37,6 +37,20 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '1.3'
40
+ - !ruby/object:Gem::Dependency
41
+ name: donce
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.0'
40
54
  - !ruby/object:Gem::Dependency
41
55
  name: joined
42
56
  requirement: !ruby/object:Gem::Requirement