pgtk 0.12.0 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/pgtk/wire.rb CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2019-2024 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'pg'
24
7
  require 'uri'
@@ -27,14 +10,14 @@ require_relative '../pgtk'
27
10
 
28
11
  # Wires.
29
12
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
30
- # Copyright:: Copyright (c) 2019-2024 Yegor Bugayenko
13
+ # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
31
14
  # License:: MIT
32
15
  module Pgtk::Wire
33
16
  end
34
17
 
35
18
  # Simple wire with details.
36
19
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
37
- # Copyright:: Copyright (c) 2019-2024 Yegor Bugayenko
20
+ # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
38
21
  # License:: MIT
39
22
  class Pgtk::Wire::Direct
40
23
  # Constructor.
@@ -59,7 +42,7 @@ end
59
42
 
60
43
  # Using ENV variable.
61
44
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
62
- # Copyright:: Copyright (c) 2019-2024 Yegor Bugayenko
45
+ # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
63
46
  # License:: MIT
64
47
  class Pgtk::Wire::Env
65
48
  # Constructor.
@@ -85,7 +68,7 @@ end
85
68
 
86
69
  # Using configuration from YAML file.
87
70
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
88
- # Copyright:: Copyright (c) 2019-2024 Yegor Bugayenko
71
+ # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
89
72
  # License:: MIT
90
73
  class Pgtk::Wire::Yaml
91
74
  # Constructor.
data/lib/pgtk.rb CHANGED
@@ -1,28 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2019-2024 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  # Pgtk main module.
24
7
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
25
- # Copyright:: Copyright (c) 2019-2024 Yegor Bugayenko
8
+ # Copyright:: Copyright (c) 2019-2025 Yegor Bugayenko
26
9
  # License:: MIT
27
10
  module Pgtk
28
11
  # Nothing here.
data/pgtk.gemspec CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2019-2024 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'English'
24
7
 
data/resources/pom.xml CHANGED
@@ -1,26 +1,7 @@
1
1
  <?xml version="1.0"?>
2
2
  <!--
3
- (The MIT License)
4
-
5
- Copyright (c) 2019-2024 Yegor Bugayenko
6
-
7
- Permission is hereby granted, free of charge, to any person obtaining a copy
8
- of this software and associated documentation files (the 'Software'), to deal
9
- in the Software without restriction, including without limitation the rights
10
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- copies of the Software, and to permit persons to whom the Software is
12
- furnished to do so, subject to the following conditions:
13
-
14
- The above copyright notice and this permission notice shall be included in all
15
- copies or substantial portions of the Software.
16
-
17
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
- SOFTWARE.
3
+ * SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
4
+ * SPDX-License-Identifier: MIT
24
5
  -->
25
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">
26
7
  <modelVersion>4.0.0</modelVersion>
@@ -29,8 +10,8 @@ SOFTWARE.
29
10
  <version>0.0.0</version>
30
11
  <packaging>pom</packaging>
31
12
  <properties>
32
- <postgresql.version>42.7.4</postgresql.version>
33
- <liquibase.version>4.30.0</liquibase.version>
13
+ <postgresql.version>42.7.5</postgresql.version>
14
+ <liquibase.version>4.31.1</liquibase.version>
34
15
  </properties>
35
16
  <dependencies>
36
17
  <dependency>
data/test/test__helper.rb CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2019-2024 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  $stdout.sync = true
24
7
 
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2019-2024 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'minitest/autorun'
24
7
  require 'tmpdir'
@@ -29,7 +12,7 @@ require_relative '../lib/pgtk/liquibase_task'
29
12
 
30
13
  # Liquibase rake task test.
31
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
32
- # Copyright:: Copyright (c) 2017-2019 Yegor Bugayenko
15
+ # Copyright:: Copyright (c) 2017-2025 Yegor Bugayenko
33
16
  # License:: MIT
34
17
  class TestLiquibaseTask < Minitest::Test
35
18
  def test_basic
@@ -70,6 +53,7 @@ class TestLiquibaseTask < Minitest::Test
70
53
  t.yaml = File.join(dir, 'xxx.yml')
71
54
  t.postgresql_version = '42.7.1'
72
55
  t.liquibase_version = '4.25.1'
56
+ t.quiet = true
73
57
  end
74
58
  Rake::Task['liquibase'].invoke
75
59
  end
@@ -79,10 +63,11 @@ class TestLiquibaseTask < Minitest::Test
79
63
  Pgtk::LiquibaseTask.new(:lb) do |t|
80
64
  t.master = 'the-file-doesnt-exist.xml'
81
65
  t.yaml = { 'pgsql' => {} }
66
+ t.quiet = true
82
67
  end
83
- ex = assert_raises do
68
+ ex = assert_raises(StandardError) do
84
69
  Rake::Task['lb'].invoke
85
70
  end
86
- assert(ex.message.include?('the-file-doesnt-exist.xml'))
71
+ assert_includes(ex.message, 'the-file-doesnt-exist.xml')
87
72
  end
88
73
  end
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2019-2024 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'minitest/autorun'
24
7
  require 'rake'
@@ -28,7 +11,7 @@ require_relative '../lib/pgtk/pgsql_task'
28
11
 
29
12
  # Pgsql rake task test.
30
13
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
- # Copyright:: Copyright (c) 2017-2019 Yegor Bugayenko
14
+ # Copyright:: Copyright (c) 2017-2025 Yegor Bugayenko
32
15
  # License:: MIT
33
16
  class TestPgsqlTask < Minitest::Test
34
17
  def test_basic
@@ -58,7 +41,7 @@ class TestPgsqlTask < Minitest::Test
58
41
  t.password = 'the password'
59
42
  t.dbname = 'test'
60
43
  t.yaml = File.join(dir, 'cfg.yml')
61
- t.quiet = false
44
+ t.quiet = true
62
45
  t.config = {
63
46
  log_directory: dir,
64
47
  logging_collector: 'on',
@@ -69,7 +52,7 @@ class TestPgsqlTask < Minitest::Test
69
52
  Rake::Task['p3'].invoke
70
53
  yaml = YAML.load_file(File.join(dir, 'cfg.yml'))
71
54
  assert(yaml['pgsql']['url'].start_with?('jdbc:postgresql://localhost'))
72
- assert(File.exist?(File.join(dir, 'pgsql.log')))
55
+ assert_path_exists(File.join(dir, 'pgsql.log'))
73
56
  end
74
57
  end
75
58
  end
data/test/test_pool.rb CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2019-2024 Yegor Bugayenko
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'loog'
24
7
  require 'minitest/autorun'
@@ -30,17 +13,18 @@ require 'yaml'
30
13
  require_relative '../lib/pgtk/liquibase_task'
31
14
  require_relative '../lib/pgtk/pgsql_task'
32
15
  require_relative '../lib/pgtk/pool'
16
+ require_relative '../lib/pgtk/spy'
33
17
 
34
18
  # Pool test.
35
19
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
36
- # Copyright:: Copyright (c) 2017-2019 Yegor Bugayenko
20
+ # Copyright:: Copyright (c) 2017-2025 Yegor Bugayenko
37
21
  # License:: MIT
38
22
  class TestPool < Minitest::Test
39
23
  def test_reads_version
40
24
  bootstrap do |pool|
41
25
  ver = pool.version
42
26
  assert(ver.start_with?('1'))
43
- assert(!ver.include?(' '))
27
+ refute_includes(ver, ' ')
44
28
  end
45
29
  end
46
30
 
@@ -50,7 +34,31 @@ class TestPool < Minitest::Test
50
34
  'INSERT INTO book (title) VALUES ($1) RETURNING id',
51
35
  ['Elegant Objects']
52
36
  )[0]['id'].to_i
53
- assert(id.positive?)
37
+ assert_predicate(id, :positive?)
38
+ end
39
+ end
40
+
41
+ def test_with_spy
42
+ queries = []
43
+ bootstrap do |pool|
44
+ pool = Pgtk::Spy.new(pool) { |sql| queries.append(sql) }
45
+ pool.exec(
46
+ 'INSERT INTO book (title) VALUES ($1)',
47
+ ['Elegant Objects']
48
+ )
49
+ end
50
+ assert_equal(1, queries.size)
51
+ assert_equal('INSERT INTO book (title) VALUES ($1)', queries.first)
52
+ end
53
+
54
+ def test_complex_query
55
+ bootstrap do |pool|
56
+ pool.exec(
57
+ "
58
+ INSERT INTO book (title) VALUES ('one');
59
+ INSERT INTO book (title) VALUES ('two');
60
+ "
61
+ )
54
62
  end
55
63
  end
56
64
 
@@ -61,17 +69,17 @@ class TestPool < Minitest::Test
61
69
  'INSERT INTO book (title) VALUES ($1)',
62
70
  ['Object Thinking']
63
71
  )
64
- assert(log.to_s.include?('INSERT INTO book (title) VALUES ($1)'))
72
+ assert_includes(log.to_s, 'INSERT INTO book (title) VALUES ($1)')
65
73
  end
66
74
  end
67
75
 
68
76
  def test_logs_errors
69
77
  log = Loog::Buffer.new
70
78
  bootstrap(log: log) do |pool|
71
- assert_raises PG::UndefinedTable do
79
+ assert_raises(PG::UndefinedTable) do
72
80
  pool.exec('INSERT INTO tableDoesNotExist (a) VALUES (42)')
73
81
  end
74
- assert(log.to_s.include?('INSERT INTO tableDoesNotExist'))
82
+ assert_includes(log.to_s, 'INSERT INTO tableDoesNotExist')
75
83
  end
76
84
  end
77
85
 
@@ -87,23 +95,23 @@ class TestPool < Minitest::Test
87
95
  ['Object Thinking']
88
96
  )[0]['id'].to_i
89
97
  end
90
- assert(id.positive?)
98
+ assert_predicate(id, :positive?)
91
99
  end
92
100
  end
93
101
 
94
102
  def test_transaction_with_error
95
103
  bootstrap do |pool|
96
104
  pool.exec('DELETE FROM book')
97
- assert(pool.exec('SELECT * FROM book').empty?)
98
- assert_raises do
105
+ assert_empty(pool.exec('SELECT * FROM book'))
106
+ assert_raises(StandardError) do
99
107
  pool.transaction do |t|
100
108
  t.exec('INSERT INTO book (title) VALUES ($1)', ['hey'])
101
109
  t.exec('INSERT INTO book (error_here) VALUES ($1)', ['hey'])
102
110
  end
103
111
  end
104
- assert(pool.exec('SELECT * FROM book').empty?)
112
+ assert_empty(pool.exec('SELECT * FROM book'))
105
113
  pool.exec('INSERT INTO book (title) VALUES ($1)', ['another'])
106
- assert(!pool.exec('SELECT * FROM book').empty?)
114
+ refute_empty(pool.exec('SELECT * FROM book'))
107
115
  end
108
116
  end
109
117
 
@@ -128,7 +136,7 @@ class TestPool < Minitest::Test
128
136
  t.password = 'A B C привет ! & | !'
129
137
  t.dbname = 'test'
130
138
  t.yaml = File.join(dir, 'cfg.yml')
131
- t.quiet = false
139
+ t.quiet = true
132
140
  t.fresh_start = true
133
141
  t.port = port
134
142
  end
@@ -136,11 +144,11 @@ class TestPool < Minitest::Test
136
144
  task.invoke
137
145
  pool = Pgtk::Pool.new(
138
146
  Pgtk::Wire::Yaml.new(File.join(dir, 'cfg.yml')),
139
- log: Loog::VERBOSE
147
+ log: Loog::NULL
140
148
  )
141
149
  pool.start(1)
142
150
  pool.exec('SELECT * FROM pg_catalog.pg_tables')
143
- qbash("pg_ctl -D #{Shellwords.escape(File.join(dir, 'pgsql'))} stop", log: $stdout)
151
+ qbash("pg_ctl -D #{Shellwords.escape(File.join(dir, 'pgsql'))} stop", log: nil)
144
152
  cycle = 0
145
153
  loop do
146
154
  begin
@@ -176,7 +184,7 @@ class TestPool < Minitest::Test
176
184
 
177
185
  private
178
186
 
179
- def bootstrap(log: Loog::VERBOSE)
187
+ def bootstrap(log: Loog::NULL)
180
188
  Dir.mktmpdir 'test' do |dir|
181
189
  id = rand(100..999)
182
190
  Pgtk::PgsqlTask.new("pgsql#{id}") do |t|
@@ -1,26 +1,7 @@
1
1
  <?xml version="1.0"?>
2
2
  <!--
3
- (The MIT License)
4
-
5
- Copyright (c) 2019-2024 Yegor Bugayenko
6
-
7
- Permission is hereby granted, free of charge, to any person obtaining a copy
8
- of this software and associated documentation files (the 'Software'), to deal
9
- in the Software without restriction, including without limitation the rights
10
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- copies of the Software, and to permit persons to whom the Software is
12
- furnished to do so, subject to the following conditions:
13
-
14
- The above copyright notice and this permission notice shall be included in all
15
- copies or substantial portions of the Software.
16
-
17
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
- SOFTWARE.
3
+ * SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
4
+ * SPDX-License-Identifier: MIT
24
5
  -->
25
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">
26
7
  <changeSet id="01" author="yegor256">
@@ -1,26 +1,7 @@
1
1
  <?xml version="1.0"?>
2
2
  <!--
3
- (The MIT License)
4
-
5
- Copyright (c) 2019-2024 Yegor Bugayenko
6
-
7
- Permission is hereby granted, free of charge, to any person obtaining a copy
8
- of this software and associated documentation files (the 'Software'), to deal
9
- in the Software without restriction, including without limitation the rights
10
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- copies of the Software, and to permit persons to whom the Software is
12
- furnished to do so, subject to the following conditions:
13
-
14
- The above copyright notice and this permission notice shall be included in all
15
- copies or substantial portions of the Software.
16
-
17
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
- SOFTWARE.
3
+ * SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko
4
+ * SPDX-License-Identifier: MIT
24
5
  -->
25
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">
26
7
  <includeAll path="2019"/>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgtk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-27 00:00:00.000000000 Z
11
+ date: 2025-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backtrace
@@ -99,6 +99,7 @@ files:
99
99
  - ".github/workflows/markdown-lint.yml"
100
100
  - ".github/workflows/pdd.yml"
101
101
  - ".github/workflows/rake.yml"
102
+ - ".github/workflows/reuse.yml"
102
103
  - ".github/workflows/xcop.yml"
103
104
  - ".github/workflows/yamllint.yml"
104
105
  - ".gitignore"
@@ -110,13 +111,16 @@ files:
110
111
  - Gemfile
111
112
  - Gemfile.lock
112
113
  - LICENSE.txt
114
+ - LICENSES/MIT.txt
113
115
  - README.md
116
+ - REUSE.toml
114
117
  - Rakefile
115
118
  - cucumber.yml
116
119
  - lib/pgtk.rb
117
120
  - lib/pgtk/liquibase_task.rb
118
121
  - lib/pgtk/pgsql_task.rb
119
122
  - lib/pgtk/pool.rb
123
+ - lib/pgtk/spy.rb
120
124
  - lib/pgtk/version.rb
121
125
  - lib/pgtk/wire.rb
122
126
  - pgtk.gemspec