pgtk 0.9.1 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.0pdd.yml +20 -0
- data/.github/workflows/actionlint.yml +41 -0
- data/.github/workflows/codecov.yml +23 -3
- data/.github/workflows/license.yml +57 -0
- data/.github/workflows/markdown-lint.yml +38 -0
- data/.github/workflows/pdd.yml +19 -0
- data/.github/workflows/rake.yml +22 -2
- data/.github/workflows/xcop.yml +19 -0
- data/.github/workflows/yamllint.yml +36 -0
- data/.gitignore +0 -1
- data/.rubocop.yml +25 -4
- data/.rultor.yml +21 -1
- data/.yamllint.yml +24 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +190 -0
- data/README.md +40 -18
- data/Rakefile +1 -1
- data/cucumber.yml +20 -0
- data/lib/pgtk/liquibase_task.rb +14 -6
- data/lib/pgtk/pool.rb +1 -3
- data/lib/pgtk/version.rb +1 -1
- data/pgtk.gemspec +0 -8
- data/resources/pom.xml +2 -2
- data/test/test_liquibase_task.rb +21 -0
- metadata +8 -116
- data/.travis.yml +0 -23
- data/appveyor.yml +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d578c53a29f6742eab6b147fa8f07297a8e0c21e811626dc119d5d4b857894db
|
4
|
+
data.tar.gz: b0c0136d3f3b450e4335915440cbf845ed0e546ff9dde85dd5e5d7c8bf1030b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d749193d88fbad98e34923f113fe134fd94d645c8f879ede517d90d3cdec2c173d69b2edd6566169d82caa76cb6392a58204367c900ad877df744bcde2bdf78
|
7
|
+
data.tar.gz: 71ea0f4ebb992b5e828fdb7133602f42069baeb7fb9a9b2b76691393480d237bf89a754a8a79d389475edbf1001478171339b3ba8d8e56a5cfd472cd4a74dbbf
|
data/.0pdd.yml
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
---
|
1
21
|
errors:
|
2
22
|
- yegor256@gmail.com
|
3
23
|
# alerts:
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
---
|
21
|
+
name: actionlint
|
22
|
+
'on':
|
23
|
+
push:
|
24
|
+
branches:
|
25
|
+
- master
|
26
|
+
pull_request:
|
27
|
+
branches:
|
28
|
+
- master
|
29
|
+
jobs:
|
30
|
+
actionlint:
|
31
|
+
runs-on: ubuntu-22.04
|
32
|
+
steps:
|
33
|
+
- uses: actions/checkout@v4
|
34
|
+
- name: Download actionlint
|
35
|
+
id: get_actionlint
|
36
|
+
# yamllint disable-line rule:line-length
|
37
|
+
run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
|
38
|
+
shell: bash
|
39
|
+
- name: Check workflow files
|
40
|
+
run: ${{ steps.get_actionlint.outputs.executable }} -color
|
41
|
+
shell: bash
|
@@ -1,3 +1,22 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
1
20
|
---
|
2
21
|
name: codecov
|
3
22
|
on:
|
@@ -11,15 +30,16 @@ jobs:
|
|
11
30
|
- uses: actions/checkout@v4
|
12
31
|
- uses: ruby/setup-ruby@v1
|
13
32
|
with:
|
14
|
-
ruby-version: 2
|
33
|
+
ruby-version: 3.2
|
34
|
+
bundler-cache: true
|
15
35
|
- run: |
|
16
36
|
sudo apt-get update
|
17
37
|
sudo apt-get install -y postgresql-14
|
18
38
|
sudo ln -s /usr/lib/postgresql/14/bin/initdb /bin/initdb
|
19
39
|
sudo ln -s /usr/lib/postgresql/14/bin/postgres /bin/postgres
|
20
|
-
- run: bundle
|
40
|
+
- run: bundle install
|
21
41
|
- run: bundle exec rake
|
22
|
-
- uses: codecov/codecov-action@
|
42
|
+
- uses: codecov/codecov-action@v4
|
23
43
|
with:
|
24
44
|
token: ${{ secrets.CODECOV_TOKEN }}
|
25
45
|
file: coverage/.resultset.json
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
---
|
21
|
+
name: license
|
22
|
+
'on':
|
23
|
+
push:
|
24
|
+
branches:
|
25
|
+
- master
|
26
|
+
pull_request:
|
27
|
+
branches:
|
28
|
+
- master
|
29
|
+
jobs:
|
30
|
+
license:
|
31
|
+
runs-on: ubuntu-22.04
|
32
|
+
steps:
|
33
|
+
- uses: actions/checkout@v4
|
34
|
+
- shell: bash
|
35
|
+
run: |
|
36
|
+
header="Copyright (c) 2019-$(date +%Y) Yegor Bugayenko"
|
37
|
+
failed="false"
|
38
|
+
while IFS= read -r file; do
|
39
|
+
if ! grep -q "${header}" "${file}"; then
|
40
|
+
failed="true"
|
41
|
+
echo "⚠️ Copyright header is not found in: ${file}"
|
42
|
+
else
|
43
|
+
echo "File looks good: ${file}"
|
44
|
+
fi
|
45
|
+
done < <(find . -type f \( \
|
46
|
+
-name "Dockerfile" -o \
|
47
|
+
-name "LICENSE.txt" -o \
|
48
|
+
-name "Makefile" -o \
|
49
|
+
-name "Rakefile" -o \
|
50
|
+
-name "*.sh" -o \
|
51
|
+
-name "*.rb" -o \
|
52
|
+
-name "*.fe" -o \
|
53
|
+
-name "*.yml" \
|
54
|
+
\) -print)
|
55
|
+
if [ "${failed}" = "true" ]; then
|
56
|
+
exit 1
|
57
|
+
fi
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
---
|
21
|
+
name: markdown-lint
|
22
|
+
'on':
|
23
|
+
push:
|
24
|
+
branches:
|
25
|
+
- master
|
26
|
+
pull_request:
|
27
|
+
branches:
|
28
|
+
- master
|
29
|
+
paths-ignore: ['paper/**', 'sandbox/**']
|
30
|
+
concurrency:
|
31
|
+
group: markdown-lint-${{ github.ref }}
|
32
|
+
cancel-in-progress: true
|
33
|
+
jobs:
|
34
|
+
markdown-lint:
|
35
|
+
runs-on: ubuntu-22.04
|
36
|
+
steps:
|
37
|
+
- uses: actions/checkout@v4
|
38
|
+
- uses: articulate/actions-markdownlint@v1
|
data/.github/workflows/pdd.yml
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
1
20
|
---
|
2
21
|
name: pdd
|
3
22
|
on:
|
data/.github/workflows/rake.yml
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
1
20
|
---
|
2
21
|
name: rake
|
3
22
|
on:
|
@@ -13,7 +32,7 @@ jobs:
|
|
13
32
|
strategy:
|
14
33
|
matrix:
|
15
34
|
os: [ubuntu-20.04]
|
16
|
-
ruby: [2
|
35
|
+
ruby: [3.2]
|
17
36
|
runs-on: ${{ matrix.os }}
|
18
37
|
steps:
|
19
38
|
- uses: actions/checkout@v4
|
@@ -25,5 +44,6 @@ jobs:
|
|
25
44
|
- uses: ruby/setup-ruby@v1
|
26
45
|
with:
|
27
46
|
ruby-version: ${{ matrix.ruby }}
|
28
|
-
|
47
|
+
bundler-cache: true
|
48
|
+
- run: bundle install
|
29
49
|
- run: bundle exec rake
|
data/.github/workflows/xcop.yml
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
1
20
|
---
|
2
21
|
name: xcop
|
3
22
|
"on":
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
---
|
21
|
+
name: yamllint
|
22
|
+
'on':
|
23
|
+
push:
|
24
|
+
branches:
|
25
|
+
- master
|
26
|
+
pull_request:
|
27
|
+
branches:
|
28
|
+
- master
|
29
|
+
jobs:
|
30
|
+
yamllint:
|
31
|
+
runs-on: ubuntu-22.04
|
32
|
+
steps:
|
33
|
+
- uses: actions/checkout@v4
|
34
|
+
- uses: ibiqlik/action-yamllint@v3
|
35
|
+
with:
|
36
|
+
config_file: .yamllint.yml
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,7 +1,28 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
---
|
1
21
|
AllCops:
|
2
22
|
Exclude:
|
3
|
-
- 'bin
|
4
|
-
- 'assets
|
23
|
+
- 'bin/**/**'
|
24
|
+
- 'assets/**/**'
|
25
|
+
- 'vendor/**/**'
|
5
26
|
DisplayCopNames: true
|
6
27
|
TargetRubyVersion: 2.3
|
7
28
|
SuggestExtensions: false
|
@@ -18,12 +39,12 @@ Layout/EmptyLineAfterGuardClause:
|
|
18
39
|
Metrics/AbcSize:
|
19
40
|
Max: 50
|
20
41
|
Metrics/CyclomaticComplexity:
|
21
|
-
Max:
|
42
|
+
Max: 15
|
22
43
|
Metrics/ClassLength:
|
23
44
|
Max: 120
|
24
45
|
Metrics/MethodLength:
|
25
46
|
Max: 100
|
26
47
|
Metrics/PerceivedComplexity:
|
27
|
-
Max:
|
48
|
+
Max: 15
|
28
49
|
Metrics/ParameterLists:
|
29
50
|
Max: 6
|
data/.rultor.yml
CHANGED
@@ -1,5 +1,25 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
---
|
1
21
|
docker:
|
2
|
-
image: yegor256/rultor-image:1.
|
22
|
+
image: yegor256/rultor-image:1.23.1
|
3
23
|
assets:
|
4
24
|
rubygems.yml: yegor256/home#assets/rubygems.yml
|
5
25
|
install: |
|
data/.yamllint.yml
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
---
|
21
|
+
rules:
|
22
|
+
line-length:
|
23
|
+
max: 80
|
24
|
+
allow-non-breakable-words: true
|
data/Gemfile
CHANGED
@@ -22,3 +22,12 @@
|
|
22
22
|
|
23
23
|
source 'https://rubygems.org'
|
24
24
|
gemspec
|
25
|
+
|
26
|
+
gem 'minitest', '5.23.1', require: false
|
27
|
+
gem 'rack', '3.0.11', require: false
|
28
|
+
gem 'rake', '13.2.1', require: false
|
29
|
+
gem 'rspec-rails', '6.1.2', require: false
|
30
|
+
gem 'rubocop', '1.64.0', require: false
|
31
|
+
gem 'rubocop-rspec', '2.29.2', require: false
|
32
|
+
gem 'simplecov', '0.22.0', require: false
|
33
|
+
gem 'xcop', '0.7.1', require: false
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,190 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
pgtk (0.0.0)
|
5
|
+
backtrace (~> 0.3)
|
6
|
+
loog (~> 0.2)
|
7
|
+
pg (~> 1.1)
|
8
|
+
random-port (~> 0.3)
|
9
|
+
|
10
|
+
GEM
|
11
|
+
remote: https://rubygems.org/
|
12
|
+
specs:
|
13
|
+
actionpack (7.1.3.3)
|
14
|
+
actionview (= 7.1.3.3)
|
15
|
+
activesupport (= 7.1.3.3)
|
16
|
+
nokogiri (>= 1.8.5)
|
17
|
+
racc
|
18
|
+
rack (>= 2.2.4)
|
19
|
+
rack-session (>= 1.0.1)
|
20
|
+
rack-test (>= 0.6.3)
|
21
|
+
rails-dom-testing (~> 2.2)
|
22
|
+
rails-html-sanitizer (~> 1.6)
|
23
|
+
actionview (7.1.3.3)
|
24
|
+
activesupport (= 7.1.3.3)
|
25
|
+
builder (~> 3.1)
|
26
|
+
erubi (~> 1.11)
|
27
|
+
rails-dom-testing (~> 2.2)
|
28
|
+
rails-html-sanitizer (~> 1.6)
|
29
|
+
activesupport (7.1.3.3)
|
30
|
+
base64
|
31
|
+
bigdecimal
|
32
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
33
|
+
connection_pool (>= 2.2.5)
|
34
|
+
drb
|
35
|
+
i18n (>= 1.6, < 2)
|
36
|
+
minitest (>= 5.1)
|
37
|
+
mutex_m
|
38
|
+
tzinfo (~> 2.0)
|
39
|
+
ast (2.4.2)
|
40
|
+
backtrace (0.4.0)
|
41
|
+
base64 (0.2.0)
|
42
|
+
bigdecimal (3.1.8)
|
43
|
+
builder (3.2.4)
|
44
|
+
concurrent-ruby (1.2.3)
|
45
|
+
connection_pool (2.4.1)
|
46
|
+
crass (1.0.6)
|
47
|
+
diff-lcs (1.5.1)
|
48
|
+
differ (0.1.2)
|
49
|
+
docile (1.4.0)
|
50
|
+
drb (2.2.1)
|
51
|
+
erubi (1.12.0)
|
52
|
+
i18n (1.14.5)
|
53
|
+
concurrent-ruby (~> 1.0)
|
54
|
+
io-console (0.7.2)
|
55
|
+
irb (1.13.1)
|
56
|
+
rdoc (>= 4.0.0)
|
57
|
+
reline (>= 0.4.2)
|
58
|
+
json (2.7.2)
|
59
|
+
language_server-protocol (3.17.0.3)
|
60
|
+
loofah (2.22.0)
|
61
|
+
crass (~> 1.0.2)
|
62
|
+
nokogiri (>= 1.12.0)
|
63
|
+
loog (0.5.1)
|
64
|
+
minitest (5.23.1)
|
65
|
+
mutex_m (0.2.0)
|
66
|
+
nokogiri (1.16.5-arm64-darwin)
|
67
|
+
racc (~> 1.4)
|
68
|
+
nokogiri (1.16.5-x86_64-linux)
|
69
|
+
racc (~> 1.4)
|
70
|
+
parallel (1.24.0)
|
71
|
+
parser (3.3.1.0)
|
72
|
+
ast (~> 2.4.1)
|
73
|
+
racc
|
74
|
+
pg (1.5.6)
|
75
|
+
psych (5.1.2)
|
76
|
+
stringio
|
77
|
+
racc (1.8.0)
|
78
|
+
rack (3.0.11)
|
79
|
+
rack-session (2.0.0)
|
80
|
+
rack (>= 3.0.0)
|
81
|
+
rack-test (2.1.0)
|
82
|
+
rack (>= 1.3)
|
83
|
+
rackup (2.1.0)
|
84
|
+
rack (>= 3)
|
85
|
+
webrick (~> 1.8)
|
86
|
+
rails-dom-testing (2.2.0)
|
87
|
+
activesupport (>= 5.0.0)
|
88
|
+
minitest
|
89
|
+
nokogiri (>= 1.6)
|
90
|
+
rails-html-sanitizer (1.6.0)
|
91
|
+
loofah (~> 2.21)
|
92
|
+
nokogiri (~> 1.14)
|
93
|
+
railties (7.1.3.3)
|
94
|
+
actionpack (= 7.1.3.3)
|
95
|
+
activesupport (= 7.1.3.3)
|
96
|
+
irb
|
97
|
+
rackup (>= 1.0.0)
|
98
|
+
rake (>= 12.2)
|
99
|
+
thor (~> 1.0, >= 1.2.2)
|
100
|
+
zeitwerk (~> 2.6)
|
101
|
+
rainbow (3.1.1)
|
102
|
+
rake (13.2.1)
|
103
|
+
random-port (0.6.0)
|
104
|
+
rdoc (6.7.0)
|
105
|
+
psych (>= 4.0.0)
|
106
|
+
regexp_parser (2.9.2)
|
107
|
+
reline (0.5.7)
|
108
|
+
io-console (~> 0.5)
|
109
|
+
rexml (3.2.8)
|
110
|
+
strscan (>= 3.0.9)
|
111
|
+
rspec-core (3.13.0)
|
112
|
+
rspec-support (~> 3.13.0)
|
113
|
+
rspec-expectations (3.13.0)
|
114
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
115
|
+
rspec-support (~> 3.13.0)
|
116
|
+
rspec-mocks (3.13.1)
|
117
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
118
|
+
rspec-support (~> 3.13.0)
|
119
|
+
rspec-rails (6.1.2)
|
120
|
+
actionpack (>= 6.1)
|
121
|
+
activesupport (>= 6.1)
|
122
|
+
railties (>= 6.1)
|
123
|
+
rspec-core (~> 3.13)
|
124
|
+
rspec-expectations (~> 3.13)
|
125
|
+
rspec-mocks (~> 3.13)
|
126
|
+
rspec-support (~> 3.13)
|
127
|
+
rspec-support (3.13.1)
|
128
|
+
rubocop (1.64.0)
|
129
|
+
json (~> 2.3)
|
130
|
+
language_server-protocol (>= 3.17.0)
|
131
|
+
parallel (~> 1.10)
|
132
|
+
parser (>= 3.3.0.2)
|
133
|
+
rainbow (>= 2.2.2, < 4.0)
|
134
|
+
regexp_parser (>= 1.8, < 3.0)
|
135
|
+
rexml (>= 3.2.5, < 4.0)
|
136
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
137
|
+
ruby-progressbar (~> 1.7)
|
138
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
139
|
+
rubocop-ast (1.31.3)
|
140
|
+
parser (>= 3.3.1.0)
|
141
|
+
rubocop-capybara (2.20.0)
|
142
|
+
rubocop (~> 1.41)
|
143
|
+
rubocop-factory_bot (2.25.1)
|
144
|
+
rubocop (~> 1.41)
|
145
|
+
rubocop-rspec (2.29.2)
|
146
|
+
rubocop (~> 1.40)
|
147
|
+
rubocop-capybara (~> 2.17)
|
148
|
+
rubocop-factory_bot (~> 2.22)
|
149
|
+
rubocop-rspec_rails (~> 2.28)
|
150
|
+
rubocop-rspec_rails (2.28.3)
|
151
|
+
rubocop (~> 1.40)
|
152
|
+
ruby-progressbar (1.13.0)
|
153
|
+
simplecov (0.22.0)
|
154
|
+
docile (~> 1.1)
|
155
|
+
simplecov-html (~> 0.11)
|
156
|
+
simplecov_json_formatter (~> 0.1)
|
157
|
+
simplecov-html (0.12.3)
|
158
|
+
simplecov_json_formatter (0.1.4)
|
159
|
+
slop (4.10.1)
|
160
|
+
stringio (3.1.0)
|
161
|
+
strscan (3.1.0)
|
162
|
+
thor (1.3.1)
|
163
|
+
tzinfo (2.0.6)
|
164
|
+
concurrent-ruby (~> 1.0)
|
165
|
+
unicode-display_width (2.5.0)
|
166
|
+
webrick (1.8.1)
|
167
|
+
xcop (0.7.1)
|
168
|
+
differ (~> 0.1.2)
|
169
|
+
nokogiri (~> 1.10)
|
170
|
+
rainbow (~> 3.0)
|
171
|
+
slop (~> 4.4)
|
172
|
+
zeitwerk (2.6.14)
|
173
|
+
|
174
|
+
PLATFORMS
|
175
|
+
arm64-darwin-22
|
176
|
+
x86_64-linux
|
177
|
+
|
178
|
+
DEPENDENCIES
|
179
|
+
minitest (= 5.23.1)
|
180
|
+
pgtk!
|
181
|
+
rack (= 3.0.11)
|
182
|
+
rake (= 13.2.1)
|
183
|
+
rspec-rails (= 6.1.2)
|
184
|
+
rubocop (= 1.64.0)
|
185
|
+
rubocop-rspec (= 2.29.2)
|
186
|
+
simplecov (= 0.22.0)
|
187
|
+
xcop (= 0.7.1)
|
188
|
+
|
189
|
+
BUNDLED WITH
|
190
|
+
2.5.6
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
# Ruby + PostgreSQL + Liquibase + Rake
|
2
2
|
|
3
3
|
[![EO principles respected here](https://www.elegantobjects.org/badge.svg)](https://www.elegantobjects.org)
|
4
4
|
[![DevOps By Rultor.com](http://www.rultor.com/b/yegor256/pgtk)](http://www.rultor.com/p/yegor256/pgtk)
|
@@ -12,8 +12,10 @@
|
|
12
12
|
[![Test Coverage](https://img.shields.io/codecov/c/github/yegor256/pgtk.svg)](https://codecov.io/github/yegor256/pgtk?branch=master)
|
13
13
|
[![Hits-of-Code](https://hitsofcode.com/github/yegor256/pgtk)](https://hitsofcode.com/view/github/yegor256/pgtk)
|
14
14
|
|
15
|
-
This small Ruby gem helps you integrate
|
16
|
-
|
15
|
+
This small Ruby gem helps you integrate
|
16
|
+
[PostgreSQL](https://www.postgresql.org/) with your Ruby
|
17
|
+
web app, through [Liquibase](https://www.liquibase.org/).
|
18
|
+
It also adds a simple connection pool
|
17
19
|
and query processor, to make SQL manipulation simpler.
|
18
20
|
|
19
21
|
First of all, on top of
|
@@ -26,8 +28,8 @@ you need to have
|
|
26
28
|
In Ubuntu 16+ this should be enough:
|
27
29
|
|
28
30
|
```bash
|
29
|
-
|
30
|
-
|
31
|
+
sudo apt-get install -y postgresql-10 postgresql-client-10
|
32
|
+
sudo apt-get install -y default-jre maven
|
31
33
|
```
|
32
34
|
|
33
35
|
Then, add this to your [`Gemfile`](https://bundler.io/gemfile.html):
|
@@ -36,7 +38,8 @@ Then, add this to your [`Gemfile`](https://bundler.io/gemfile.html):
|
|
36
38
|
gem 'pgtk'
|
37
39
|
```
|
38
40
|
|
39
|
-
Then, add this to your
|
41
|
+
Then, add this to your
|
42
|
+
[`Rakefile`](https://github.com/ruby/rake/blob/master/doc/rakefile.rdoc):
|
40
43
|
|
41
44
|
```ruby
|
42
45
|
require 'pgtk/pgsql_task'
|
@@ -50,7 +53,10 @@ Pgtk::PgsqlTask.new :pgsql do |t|
|
|
50
53
|
end
|
51
54
|
```
|
52
55
|
|
53
|
-
And this too
|
56
|
+
And this too
|
57
|
+
([org.postgresql:postgresql][plugin-1]
|
58
|
+
and [org.liquibase:liquibase-maven-plugin][plugin-2]
|
59
|
+
are used inside):
|
54
60
|
|
55
61
|
```ruby
|
56
62
|
require 'pgtk/liquibase_task'
|
@@ -63,6 +69,18 @@ Pgtk::LiquibaseTask.new liquibase: :pgsql do |t|
|
|
63
69
|
end
|
64
70
|
```
|
65
71
|
|
72
|
+
The config.yml file should be in this format:
|
73
|
+
|
74
|
+
```yaml
|
75
|
+
pgsql:
|
76
|
+
url: jdbc:postgresql://<host>:<port>/<dbname>?user=<user>
|
77
|
+
host: ...
|
78
|
+
port: ...
|
79
|
+
dbname: ...
|
80
|
+
user: ...
|
81
|
+
password: ...
|
82
|
+
```
|
83
|
+
|
66
84
|
You should create that `liquibase/master.xml` file in your repository,
|
67
85
|
and a number of other XML files with Liquibase changes. This
|
68
86
|
[example](https://github.com/zold-io/wts.zold.io/tree/master/liquibase)
|
@@ -71,7 +89,7 @@ will help you understand them.
|
|
71
89
|
Now, you can do this:
|
72
90
|
|
73
91
|
```bash
|
74
|
-
|
92
|
+
bundle exec rake pgsql liquibase
|
75
93
|
```
|
76
94
|
|
77
95
|
A temporary PostgreSQL server will be started and the entire set of
|
@@ -90,7 +108,6 @@ You can also let it pick the connection parameters from the environment
|
|
90
108
|
variable `DATABASE_URL`, formatted like
|
91
109
|
`postgres://user:password@host:5432/dbname`:
|
92
110
|
|
93
|
-
|
94
111
|
```ruby
|
95
112
|
pgsql = Pgtk::Pool.new(Pgtk::Wire::Env.new)
|
96
113
|
```
|
@@ -132,29 +149,34 @@ end
|
|
132
149
|
|
133
150
|
Should work.
|
134
151
|
|
135
|
-
Well, it works in
|
152
|
+
Well, it works in
|
136
153
|
[netbout.com](https://github.com/yegor256/netbout),
|
137
154
|
[wts.zold.io](https://github.com/zold-io/wts.zold.io),
|
138
155
|
[mailanes.com](https://github.com/yegor256/mailanes), and
|
139
|
-
[0rsk.com](https://github.com/yegor256/0rsk).
|
156
|
+
[0rsk.com](https://github.com/yegor256/0rsk).
|
140
157
|
They are all open source, you can see how they use `pgtk`.
|
141
158
|
|
142
159
|
## How to contribute
|
143
160
|
|
144
|
-
Read
|
161
|
+
Read
|
162
|
+
[these guidelines](https://www.yegor256.com/2014/04/15/github-guidelines.html).
|
145
163
|
Make sure your build is green before you contribute
|
146
|
-
your pull request. You will need to have
|
164
|
+
your pull request. You will need to have
|
165
|
+
[Ruby](https://www.ruby-lang.org/en/) 2.3+ and
|
147
166
|
[Bundler](https://bundler.io/) installed. Then:
|
148
167
|
|
149
|
-
```
|
150
|
-
|
151
|
-
|
168
|
+
```bash
|
169
|
+
bundle update
|
170
|
+
bundle exec rake
|
152
171
|
```
|
153
172
|
|
154
173
|
If it's clean and you don't see any error messages, submit your pull request.
|
155
174
|
|
156
175
|
To run a single test, do this:
|
157
176
|
|
177
|
+
```bash
|
178
|
+
bundle exec ruby test/test_pool.rb -n test_basic
|
158
179
|
```
|
159
|
-
|
160
|
-
|
180
|
+
|
181
|
+
[plugin-1]: https://mvnrepository.com/artifact/org.postgresql/postgresql
|
182
|
+
[plugin-2]: https://mvnrepository.com/artifact/org.liquibase/liquibase-maven-plugin
|
data/Rakefile
CHANGED
@@ -65,7 +65,7 @@ desc 'Validate all XML/XSL/XSD/HTML files for formatting'
|
|
65
65
|
Xcop::RakeTask.new :xcop do |task|
|
66
66
|
task.license = 'LICENSE.txt'
|
67
67
|
task.includes = ['**/*.xml', '**/*.xsl', '**/*.xsd', '**/*.html']
|
68
|
-
task.excludes = ['target/**/*', 'coverage/**/*']
|
68
|
+
task.excludes = ['target/**/*', 'coverage/**/*', 'vendor/**/*']
|
69
69
|
end
|
70
70
|
|
71
71
|
task :copyright do
|
data/cucumber.yml
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
+
# Copyright (c) 2019-2024 Yegor Bugayenko
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in all
|
11
|
+
# copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
---
|
1
21
|
default: --format pretty
|
2
22
|
travis: --format progress
|
3
23
|
html_report: --format progress --format html --out=features_report.html
|
data/lib/pgtk/liquibase_task.rb
CHANGED
@@ -67,11 +67,17 @@ class Pgtk::LiquibaseTask < Rake::TaskLib
|
|
67
67
|
raise "YAML configuration is missing the 'pgsql' section" unless yml['pgsql']
|
68
68
|
@master = File.expand_path(@master)
|
69
69
|
unless File.exist?(@master)
|
70
|
-
raise
|
71
|
-
|
72
|
-
|
70
|
+
raise \
|
71
|
+
"Liquibase master is absent at '#{@master}'. " \
|
72
|
+
'More about this file you can find in Liquibase documentation: ' \
|
73
|
+
'https://docs.liquibase.com/concepts/changelogs/xml-format.html'
|
73
74
|
end
|
74
75
|
pom = File.expand_path(File.join(__dir__, '../../resources/pom.xml'))
|
76
|
+
old = @liquibase_version.match?(/^[1-3]\..+$/)
|
77
|
+
url = yml['pgsql']['url']
|
78
|
+
raise "The 'url' is not set in the config (YAML)" if url.nil?
|
79
|
+
password = yml['pgsql']['password']
|
80
|
+
raise "The 'password' is not set in the config (YAML)" if password.nil?
|
75
81
|
Dir.chdir(File.dirname(@master)) do
|
76
82
|
system(
|
77
83
|
[
|
@@ -87,11 +93,13 @@ https://docs.liquibase.com/concepts/changelogs/xml-format.html"
|
|
87
93
|
'--define',
|
88
94
|
"postgresql.version=#{@postgresql_version}",
|
89
95
|
'--define',
|
90
|
-
"liquibase.
|
96
|
+
"liquibase.searchPath=#{File.dirname(@master)}",
|
91
97
|
'--define',
|
92
|
-
"liquibase.
|
98
|
+
"liquibase.changeLogFile=#{old ? @master : File.basename(@master)}",
|
93
99
|
'--define',
|
94
|
-
"liquibase.
|
100
|
+
"liquibase.url=#{Shellwords.escape(url)}",
|
101
|
+
'--define',
|
102
|
+
"liquibase.password=#{Shellwords.escape(password)}",
|
95
103
|
'--define',
|
96
104
|
"liquibase.logging=#{@quiet ? 'severe' : 'info'}",
|
97
105
|
'2>&1'
|
data/lib/pgtk/pool.rb
CHANGED
data/lib/pgtk/version.rb
CHANGED
data/pgtk.gemspec
CHANGED
@@ -46,13 +46,5 @@ connection pool and query processor, to make SQL manipulation simpler.'
|
|
46
46
|
s.add_runtime_dependency 'loog', '~> 0.2'
|
47
47
|
s.add_runtime_dependency 'pg', '~> 1.1'
|
48
48
|
s.add_runtime_dependency 'random-port', '~> 0.3'
|
49
|
-
s.add_development_dependency 'minitest', '5.18.0'
|
50
|
-
s.add_development_dependency 'rack', '2.2.7'
|
51
|
-
s.add_development_dependency 'rake', '13.0.6'
|
52
|
-
s.add_development_dependency 'rspec-rails', '3.1.0'
|
53
|
-
s.add_development_dependency 'rubocop', '1.50.2'
|
54
|
-
s.add_development_dependency 'rubocop-rspec', '2.20.0'
|
55
|
-
s.add_development_dependency 'simplecov', '0.22.0'
|
56
|
-
s.add_development_dependency 'xcop', '0.7.1'
|
57
49
|
s.metadata['rubygems_mfa_required'] = 'true'
|
58
50
|
end
|
data/resources/pom.xml
CHANGED
@@ -29,8 +29,8 @@ SOFTWARE.
|
|
29
29
|
<version>0.0.0</version>
|
30
30
|
<packaging>pom</packaging>
|
31
31
|
<properties>
|
32
|
-
<postgresql.version>42.7.
|
33
|
-
<liquibase.version>4.
|
32
|
+
<postgresql.version>42.7.3</postgresql.version>
|
33
|
+
<liquibase.version>4.28.0</liquibase.version>
|
34
34
|
</properties>
|
35
35
|
<dependencies>
|
36
36
|
<dependency>
|
data/test/test_liquibase_task.rb
CHANGED
@@ -54,6 +54,27 @@ class TestLiquibaseTask < Minitest::Test
|
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
|
+
def test_latest_version
|
58
|
+
Dir.mktmpdir 'test' do |dir|
|
59
|
+
Pgtk::PgsqlTask.new(:pgsql) do |t|
|
60
|
+
t.dir = File.join(dir, 'pgsql')
|
61
|
+
t.user = 'xxx'
|
62
|
+
t.password = 'xxx'
|
63
|
+
t.dbname = 'xxx'
|
64
|
+
t.yaml = File.join(dir, 'xxx.yml')
|
65
|
+
t.quiet = true
|
66
|
+
end
|
67
|
+
Rake::Task['pgsql'].invoke
|
68
|
+
Pgtk::LiquibaseTask.new(:liquibase) do |t|
|
69
|
+
t.master = File.join(__dir__, '../test-resources/master.xml')
|
70
|
+
t.yaml = File.join(dir, 'xxx.yml')
|
71
|
+
t.postgresql_version = '42.7.1'
|
72
|
+
t.liquibase_version = '4.25.1'
|
73
|
+
end
|
74
|
+
Rake::Task['liquibase'].invoke
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
57
78
|
def test_with_invalid_master_file
|
58
79
|
Pgtk::LiquibaseTask.new(:lb) do |t|
|
59
80
|
t.master = 'the-file-doesnt-exist.xml'
|
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.9.
|
4
|
+
version: 0.9.3
|
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-
|
11
|
+
date: 2024-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backtrace
|
@@ -66,118 +66,6 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.3'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: minitest
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - '='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 5.18.0
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - '='
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 5.18.0
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rack
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - '='
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 2.2.7
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - '='
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 2.2.7
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: rake
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - '='
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 13.0.6
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - '='
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 13.0.6
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rspec-rails
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - '='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 3.1.0
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - '='
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 3.1.0
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rubocop
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - '='
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: 1.50.2
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - '='
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: 1.50.2
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: rubocop-rspec
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - '='
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: 2.20.0
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - '='
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: 2.20.0
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: simplecov
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - '='
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: 0.22.0
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - '='
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: 0.22.0
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: xcop
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - '='
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: 0.7.1
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - '='
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: 0.7.1
|
181
69
|
description: |-
|
182
70
|
This small Ruby gem helps you integrate PostgreSQL \
|
183
71
|
with your Ruby web app, through Liquibase. It also adds a simple \
|
@@ -191,21 +79,25 @@ extra_rdoc_files:
|
|
191
79
|
files:
|
192
80
|
- ".0pdd.yml"
|
193
81
|
- ".gitattributes"
|
82
|
+
- ".github/workflows/actionlint.yml"
|
194
83
|
- ".github/workflows/codecov.yml"
|
84
|
+
- ".github/workflows/license.yml"
|
85
|
+
- ".github/workflows/markdown-lint.yml"
|
195
86
|
- ".github/workflows/pdd.yml"
|
196
87
|
- ".github/workflows/rake.yml"
|
197
88
|
- ".github/workflows/xcop.yml"
|
89
|
+
- ".github/workflows/yamllint.yml"
|
198
90
|
- ".gitignore"
|
199
91
|
- ".pdd"
|
200
92
|
- ".rubocop.yml"
|
201
93
|
- ".rultor.yml"
|
202
94
|
- ".simplecov"
|
203
|
-
- ".
|
95
|
+
- ".yamllint.yml"
|
204
96
|
- Gemfile
|
97
|
+
- Gemfile.lock
|
205
98
|
- LICENSE.txt
|
206
99
|
- README.md
|
207
100
|
- Rakefile
|
208
|
-
- appveyor.yml
|
209
101
|
- cucumber.yml
|
210
102
|
- lib/pgtk.rb
|
211
103
|
- lib/pgtk/liquibase_task.rb
|
data/.travis.yml
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
sudo: required
|
3
|
-
rvm:
|
4
|
-
- 2.6.0
|
5
|
-
cache: bundler
|
6
|
-
branches:
|
7
|
-
only:
|
8
|
-
- master
|
9
|
-
addons:
|
10
|
-
postgresql: "10"
|
11
|
-
apt:
|
12
|
-
packages:
|
13
|
-
- postgresql-10
|
14
|
-
- postgresql-client-10
|
15
|
-
install:
|
16
|
-
- travis_retry bundle update
|
17
|
-
services:
|
18
|
-
- postgresql
|
19
|
-
script:
|
20
|
-
- bundle exec rake
|
21
|
-
after_success:
|
22
|
-
- "bash <(curl -s https://codecov.io/bash)"
|
23
|
-
|
data/appveyor.yml
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
version: '{build}'
|
2
|
-
skip_tags: true
|
3
|
-
clone_depth: 10
|
4
|
-
services:
|
5
|
-
- postgresql
|
6
|
-
branches:
|
7
|
-
only:
|
8
|
-
- master
|
9
|
-
except:
|
10
|
-
- gh-pages
|
11
|
-
os: Windows Server 2012
|
12
|
-
install:
|
13
|
-
- cmd: SET PATH=C:\Ruby23-x64\bin;%PATH%
|
14
|
-
- cmd: ruby --version
|
15
|
-
- cmd: git --version
|
16
|
-
- cmd: java -version
|
17
|
-
- cmd: mvn --version
|
18
|
-
- cmd: PATH=C:\Program Files\PostgreSQL\9.6\bin\;%PATH%
|
19
|
-
- cmd: psql --version
|
20
|
-
build_script:
|
21
|
-
- bundle update
|
22
|
-
- bundle install
|
23
|
-
test_script:
|
24
|
-
- bundle exec rake
|
25
|
-
cache:
|
26
|
-
- C:\Ruby200\bin -> pgtk.gemspec
|
27
|
-
- C:\Ruby200\lib\ruby\gems\2.0.0 -> pgtk.gemspec
|