sequel-sequence 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.md +41 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +38 -0
- data/.github/dependabot.yml +14 -0
- data/.github/workflows/ci.yml +91 -0
- data/.gitignore +5 -2
- data/.rubocop.yml +37 -0
- data/CHANGELOG.md +7 -0
- data/CONTRIBUTING.md +18 -8
- data/README.md +5 -5
- data/lib/sequel/sequence/database.rb +13 -5
- data/lib/sequel/sequence/version.rb +1 -1
- data/sequel-sequence.gemspec +12 -12
- data/test/mysql_test_helper.rb +16 -12
- data/test/postgresql_test_helper.rb +16 -12
- data/test/sequel/mysql_sequence_test.rb +67 -57
- data/test/sequel/postgresql_sequence_test.rb +64 -58
- metadata +47 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39e70601cb32fc0e4240423134984c665c0691ebb68aa2b1038b43ea0e978176
|
4
|
+
data.tar.gz: ad285adcee5907a0d40d3ecd7d4e2bb67d3711876c75687276a58f71304cf48a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b97dc0b9a8b1c531d3863de2c52fde8ae2f0013aca027035fef391e2977db84520e6a00b059118a7c62ce77c57f7333abbfab56dad13d0b425d2ff4f923c02f
|
7
|
+
data.tar.gz: e35322803655e71d7118c3ec3e63e554ffaa73e0669e3d0947ad386d277d8b465c66b677ee9aa9bc14843062fef0331865682df769e2b2aa3fa136bca8e7029c
|
@@ -0,0 +1,41 @@
|
|
1
|
+
---
|
2
|
+
name: "🐛 Bug Report"
|
3
|
+
about: Report a reproducible bug or regression.
|
4
|
+
title: 'Bug: '
|
5
|
+
labels: 'Status: Unconfirmed'
|
6
|
+
|
7
|
+
---
|
8
|
+
|
9
|
+
<!--
|
10
|
+
- Please provide a clear and concise description of what the bug is.
|
11
|
+
- If possible, add an example reproducing your issue.
|
12
|
+
- Please test using the latest version of ar-sequence
|
13
|
+
to make sure your issue has not already been fixed.
|
14
|
+
-->
|
15
|
+
|
16
|
+
## Description
|
17
|
+
|
18
|
+
[Add bug description here]
|
19
|
+
|
20
|
+
## How to reproduce
|
21
|
+
|
22
|
+
[Add steps on how to reproduce this issue]
|
23
|
+
|
24
|
+
## What do you expect
|
25
|
+
|
26
|
+
[Describe what do you expect to happen]
|
27
|
+
|
28
|
+
## What happened instead
|
29
|
+
|
30
|
+
[Describe the actual results]
|
31
|
+
|
32
|
+
## Software:
|
33
|
+
|
34
|
+
- Gem version: [Add gem version here]
|
35
|
+
- Ruby version: [Add version here]
|
36
|
+
|
37
|
+
## Full backtrace
|
38
|
+
|
39
|
+
```text
|
40
|
+
[Paste full backtrace here]
|
41
|
+
```
|
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
name: "💡 Feature request"
|
3
|
+
about: Have an idea that may be useful? Make a suggestion!
|
4
|
+
title: 'Feature Request: '
|
5
|
+
labels: 'Feature request'
|
6
|
+
|
7
|
+
---
|
8
|
+
|
9
|
+
## Description
|
10
|
+
|
11
|
+
_A clear and concise description of what the problem is._
|
12
|
+
|
13
|
+
## Describe the solution
|
14
|
+
|
15
|
+
_A clear and concise description of what you want to happen._
|
16
|
+
|
17
|
+
## Alternatives you considered
|
18
|
+
|
19
|
+
_A clear and concise description of any alternative solutions or features you've considered._
|
20
|
+
|
21
|
+
## Additional context
|
22
|
+
|
23
|
+
_Add any other context, screenshots, links, etc about the feature request here._
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<!--
|
2
|
+
If you're making a doc PR or something tiny where the below is irrelevant,
|
3
|
+
delete this template and use a short description, but in your description aim to
|
4
|
+
include both what the change is, and why it is being made, with enough context
|
5
|
+
for anyone to understand.
|
6
|
+
-->
|
7
|
+
|
8
|
+
<details>
|
9
|
+
<summary>PR Checklist</summary>
|
10
|
+
|
11
|
+
### PR Structure
|
12
|
+
|
13
|
+
- [ ] This PR has reasonably narrow scope (if not, break it down into smaller
|
14
|
+
PRs).
|
15
|
+
- [ ] This PR avoids mixing refactoring changes with feature changes (split into
|
16
|
+
two PRs otherwise).
|
17
|
+
- [ ] This PR's title starts is concise and descriptive.
|
18
|
+
|
19
|
+
### Thoroughness
|
20
|
+
|
21
|
+
- [ ] This PR adds tests for the most critical parts of the new functionality or
|
22
|
+
fixes.
|
23
|
+
- [ ] I've updated any docs, `.md` files, etc… affected by this change.
|
24
|
+
|
25
|
+
</details>
|
26
|
+
|
27
|
+
### What
|
28
|
+
|
29
|
+
[TODO: Short statement about what is changing.]
|
30
|
+
|
31
|
+
### Why
|
32
|
+
|
33
|
+
[TODO: Why this change is being made. Include any context required to understand
|
34
|
+
the why.]
|
35
|
+
|
36
|
+
### Known limitations
|
37
|
+
|
38
|
+
[TODO or N/A]
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Documentation:
|
2
|
+
# https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/configuration-options-for-dependency-updates
|
3
|
+
|
4
|
+
version: 2
|
5
|
+
updates:
|
6
|
+
- package-ecosystem: "github-actions"
|
7
|
+
directory: "/"
|
8
|
+
schedule:
|
9
|
+
interval: "monthly"
|
10
|
+
|
11
|
+
- package-ecosystem: "bundler"
|
12
|
+
directory: "/"
|
13
|
+
schedule:
|
14
|
+
interval: "monthly"
|
@@ -0,0 +1,91 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
inputs: {}
|
6
|
+
push:
|
7
|
+
branches: [ master ]
|
8
|
+
pull_request:
|
9
|
+
branches: ['**']
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
tests:
|
13
|
+
strategy:
|
14
|
+
fail-fast: false
|
15
|
+
matrix:
|
16
|
+
os: ['ubuntu-latest']
|
17
|
+
sequel: ['~>5.28']
|
18
|
+
ruby: ['3.2', '3.1', '3.0', '2.7']
|
19
|
+
gemfile: ['Gemfile']
|
20
|
+
runs-on: ${{ matrix.os }}
|
21
|
+
name: Tests with Ruby ${{ matrix.ruby }}
|
22
|
+
|
23
|
+
services:
|
24
|
+
postgres:
|
25
|
+
image: postgres:13
|
26
|
+
env:
|
27
|
+
POSTGRES_USER: postgres
|
28
|
+
POSTGRES_PASSWORD: postgres
|
29
|
+
ports:
|
30
|
+
- 5432:5432
|
31
|
+
options: >-
|
32
|
+
--health-cmd pg_isready
|
33
|
+
--health-interval 10s
|
34
|
+
--health-timeout 5s
|
35
|
+
--health-retries 5
|
36
|
+
mysql:
|
37
|
+
image: mariadb:11.1
|
38
|
+
env:
|
39
|
+
MARIADB_ROOT_PASSWORD: root
|
40
|
+
ports:
|
41
|
+
- 3306:3306
|
42
|
+
options: >-
|
43
|
+
--health-cmd="healthcheck.sh --connect --innodb_initialized"
|
44
|
+
--health-interval 10s
|
45
|
+
--health-timeout 5s
|
46
|
+
--health-retries 3
|
47
|
+
|
48
|
+
env:
|
49
|
+
SEQUEL: ${{ matrix.sequel }}
|
50
|
+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
51
|
+
steps:
|
52
|
+
- uses: actions/checkout@v4
|
53
|
+
|
54
|
+
- name: Install db dependencies and check connections
|
55
|
+
run: |
|
56
|
+
DEBIAN_FRONTEND="noninteractive" sudo apt-get install -yqq mysql-client libmysqlclient-dev postgresql-client libpq-dev
|
57
|
+
mysql --host 127.0.0.1 --port ${{ job.services.mysql.ports[3306] }} -uroot -proot -e "SHOW GRANTS FOR 'root'@'localhost'"
|
58
|
+
env PGPASSWORD=postgres psql -h localhost -p ${{ job.services.postgres.ports[5432] }} -U postgres -l
|
59
|
+
|
60
|
+
- name: Set up Ruby
|
61
|
+
uses: ruby/setup-ruby@v1
|
62
|
+
with:
|
63
|
+
ruby-version: ${{ matrix.ruby }}
|
64
|
+
bundler-cache: true
|
65
|
+
|
66
|
+
- name: Create MySQL database
|
67
|
+
run: |
|
68
|
+
mysql -e 'create database test; use test; create table if not exists wares(id int auto_increment, primary key(id)); create table if not exists builders(id int auto_increment, primary key(id));' --host 127.0.0.1 --port ${{ job.services.mysql.ports[3306] }} -uroot -proot
|
69
|
+
|
70
|
+
- name: Create PostgreSQL database
|
71
|
+
env:
|
72
|
+
PGPASSWORD: postgres
|
73
|
+
run: |
|
74
|
+
psql -c 'create database "test";' -U postgres -h localhost -p ${{ job.services.postgres.ports[5432] }}
|
75
|
+
|
76
|
+
- name: Run Tests
|
77
|
+
run: bundle exec rake test
|
78
|
+
env:
|
79
|
+
TEST_POSTGRES_DATABASE: test
|
80
|
+
TEST_POSTGRES_HOST: localhost
|
81
|
+
TEST_POSTGRES_PORT: ${{ job.services.postgres.ports[5432] }}
|
82
|
+
TEST_POSTGRES_USERNAME: postgres
|
83
|
+
TEST_POSTGRES_PASSWORD: postgres
|
84
|
+
TEST_MYSQL_DATABASE: test
|
85
|
+
TEST_MYSQL_HOST: 127.0.0.1
|
86
|
+
TEST_MYSQL_PORT: ${{ job.services.mysql.ports[3306] }}
|
87
|
+
TEST_MYSQL_USERNAME: root
|
88
|
+
TEST_MYSQL_PASSWORD: root
|
89
|
+
|
90
|
+
- name: Run Rubocop
|
91
|
+
run: bundle exec rake rubocop
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.7
|
3
|
+
NewCops: enable
|
4
|
+
SuggestExtensions:
|
5
|
+
rubocop-rake: false
|
6
|
+
|
7
|
+
Naming/FileName:
|
8
|
+
Enabled: false
|
9
|
+
|
10
|
+
Metrics/MethodLength:
|
11
|
+
Enabled: false
|
12
|
+
|
13
|
+
Metrics/ClassLength:
|
14
|
+
Exclude:
|
15
|
+
- test/**/*
|
16
|
+
|
17
|
+
Metrics/AbcSize:
|
18
|
+
Enabled: false
|
19
|
+
|
20
|
+
Metrics/CyclomaticComplexity:
|
21
|
+
Enabled: false
|
22
|
+
|
23
|
+
Metrics/PerceivedComplexity:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
Gemspec/RequireMFA:
|
27
|
+
Enabled: false
|
28
|
+
|
29
|
+
Gemspec/DevelopmentDependencies:
|
30
|
+
EnforcedStyle: gemspec
|
31
|
+
|
32
|
+
Style/Documentation:
|
33
|
+
Enabled: false
|
34
|
+
|
35
|
+
Lint/ConstantDefinitionInBlock:
|
36
|
+
Exclude:
|
37
|
+
- test/**/*
|
data/CHANGELOG.md
CHANGED
@@ -11,6 +11,13 @@ Prefix your message with one of the following:
|
|
11
11
|
- [Security] in case of vulnerabilities.
|
12
12
|
-->
|
13
13
|
|
14
|
+
## v0.2.0 - 2023-09-14
|
15
|
+
|
16
|
+
- [Added] CI features based on GitHub Actions.
|
17
|
+
- [Fixed] README.md
|
18
|
+
- [Changed] Unit tests.
|
19
|
+
- [Fixed] Sequel::Sequence::Database exceptions.
|
20
|
+
|
14
21
|
## v0.1.0 - 2023-09-10
|
15
22
|
|
16
23
|
- Initial release.
|
data/CONTRIBUTING.md
CHANGED
@@ -9,7 +9,7 @@ changes to this document in a pull request.
|
|
9
9
|
## Code of Conduct
|
10
10
|
|
11
11
|
Everyone interacting in this project's codebases, issue trackers, chat rooms and
|
12
|
-
mailing lists is expected to follow the [code of conduct](https://github.com/
|
12
|
+
mailing lists is expected to follow the [code of conduct](https://github.com/oreol-group/sequel-sequence/blob/master/CODE_OF_CONDUCT.md).
|
13
13
|
|
14
14
|
## Reporting bugs
|
15
15
|
|
@@ -26,7 +26,7 @@ the behavior, and find related reports.
|
|
26
26
|
## Contributing with code
|
27
27
|
|
28
28
|
Before making any radicals changes, please make sure you discuss your intention
|
29
|
-
by [opening an issue on Github](https://github.com/
|
29
|
+
by [opening an issue on Github](https://github.com/oreol-group/sequel-sequence/issues).
|
30
30
|
|
31
31
|
When you're ready to make your pull request, follow checklist below to make sure
|
32
32
|
your contribution is according to how this project works.
|
@@ -81,11 +81,22 @@ test=# \dt
|
|
81
81
|
--------+---------+-------+-----------
|
82
82
|
public | masters | table | USER_NAME
|
83
83
|
public | things | table | USER_NAME
|
84
|
-
(2 rows)
|
85
84
|
```
|
86
|
-
|
85
|
+
and role `postgres`
|
86
|
+
```bash
|
87
|
+
psql -d test -c 'SELECT rolname FROM pg_roles;'
|
88
|
+
rolname
|
89
|
+
---------------------------
|
90
|
+
postgres
|
91
|
+
```
|
92
|
+
- If none of them exist, create role
|
93
|
+
```bash
|
94
|
+
psql -d postgres -c "create role postgres superuser createdb login password 'postgres';"
|
95
|
+
```
|
96
|
+
and database with a couple of tables:
|
97
|
+
|
87
98
|
```bash
|
88
|
-
sudo psql -U
|
99
|
+
sudo psql -U postgres -d postgres
|
89
100
|
postgres=# CREATE DATABASE test;
|
90
101
|
postgres=# \c test
|
91
102
|
test=# CREATE TABLE IF NOT EXISTS things ();
|
@@ -104,7 +115,6 @@ MariaDB [test]> SHOW TABLES;
|
|
104
115
|
| builders |
|
105
116
|
| wares |
|
106
117
|
+----------------------+
|
107
|
-
4 rows in set (0.001 sec)
|
108
118
|
```
|
109
119
|
- If it doesn't exists, create one with a couple of tables:
|
110
120
|
```bash
|
@@ -115,6 +125,6 @@ MariaDB [test]> CREATE TABLE IF NOT EXISTS builders(id int auto_increment, prima
|
|
115
125
|
```
|
116
126
|
- Run the tests separately:
|
117
127
|
```bash
|
118
|
-
bundle exec rake TEST=test/
|
119
|
-
bundle exec rake TEST=test/
|
128
|
+
bundle exec rake TEST=test/sequel/postgresql_sequence_test.rb
|
129
|
+
bundle exec rake TEST=test/sequel/mysql_sequence_test.rb
|
120
130
|
```
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# sequel-sequence
|
2
2
|
|
3
|
-
[](https://github.com/oreol-group/sequel-sequence)
|
4
4
|
[](https://rubygems.org/gems/sequel-sequence)
|
5
|
-
[](https://rubygems.org/
|
5
|
+
[](https://rubygems.org/profiles/it_architect)
|
6
6
|
|
7
7
|
Adds a useful interface and support for PostgreSQL and MySQL `SEQUENCE` on Sequel migrations
|
8
8
|
|
@@ -93,16 +93,16 @@ DB.setval("position", 1234)
|
|
93
93
|
## Contributing
|
94
94
|
|
95
95
|
For more details about how to contribute, please read
|
96
|
-
https://github.com/oreol-group/sequel-sequence/blob/
|
96
|
+
https://github.com/oreol-group/sequel-sequence/blob/master/CONTRIBUTING.md.
|
97
97
|
|
98
98
|
## License
|
99
99
|
|
100
100
|
The gem is available as open source under the terms of the
|
101
101
|
[MIT License](https://opensource.org/licenses/MIT). A copy of the license can be
|
102
|
-
found at https://github.com/oreol-group/sequel-sequence/blob/
|
102
|
+
found at https://github.com/oreol-group/sequel-sequence/blob/master/LICENSE.md.
|
103
103
|
|
104
104
|
## Code of Conduct
|
105
105
|
|
106
106
|
Everyone interacting in the sequel-sequence project's codebases, issue trackers,
|
107
107
|
chat rooms and mailing lists is expected to follow the
|
108
|
-
[code of conduct](https://github.com/oreol-group/sequel-sequence/blob/
|
108
|
+
[code of conduct](https://github.com/oreol-group/sequel-sequence/blob/master/CODE_OF_CONDUCT.md).
|
@@ -3,12 +3,12 @@
|
|
3
3
|
module Sequel
|
4
4
|
module Sequence
|
5
5
|
module Database
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
def custom_sequence?(_sequence_name)
|
7
|
+
raise Sequel::MethodNotAllowed, Sequel::MethodNotAllowed::METHOD_NOT_ALLOWED
|
8
|
+
end
|
9
9
|
|
10
10
|
def check_sequences
|
11
|
-
|
11
|
+
raise Sequel::MethodNotAllowed, Sequel::MethodNotAllowed::METHOD_NOT_ALLOWED
|
12
12
|
end
|
13
13
|
|
14
14
|
def create_sequence(_name, _options = {})
|
@@ -20,10 +20,18 @@ module Sequel
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def quote_name(name)
|
23
|
+
unless respond_to?(:quote_column_name, false)
|
24
|
+
raise Sequel::MethodNotAllowed, Sequel::MethodNotAllowed::METHOD_NOT_ALLOWED
|
25
|
+
end
|
26
|
+
|
23
27
|
name.to_s.split('.', 2).map { |part| quote_column_name(part) }.join('.')
|
24
28
|
end
|
25
29
|
|
26
30
|
def quote(name)
|
31
|
+
unless respond_to?(:quote_sequence_name, false)
|
32
|
+
raise Sequel::MethodNotAllowed, Sequel::MethodNotAllowed::METHOD_NOT_ALLOWED
|
33
|
+
end
|
34
|
+
|
27
35
|
name.to_s.split('.', 2).map { |part| quote_sequence_name(part) }.join('.')
|
28
36
|
end
|
29
37
|
|
@@ -40,7 +48,7 @@ module Sequel
|
|
40
48
|
alias lastval currval
|
41
49
|
|
42
50
|
def setval(_name, _value)
|
43
|
-
raise
|
51
|
+
raise Sequel::MethodNotAllowed, Sequel::MethodNotAllowed::METHOD_NOT_ALLOWED
|
44
52
|
end
|
45
53
|
end
|
46
54
|
end
|
data/sequel-sequence.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.email = ['it.architect@yahoo.com']
|
17
17
|
spec.files = `git ls-files -z`.split("\x0")
|
18
18
|
spec.require_paths = ['lib']
|
19
|
-
spec.extra_rdoc_files = ['README.md']
|
19
|
+
spec.extra_rdoc_files = ['README.md', 'LICENSE.md']
|
20
20
|
spec.homepage = 'https://rubygems.org/gems/sequel-sequence'
|
21
21
|
spec.metadata = {
|
22
22
|
'source_code_uri' => 'https://github.com/oreol-group/sequel-sequence',
|
@@ -26,20 +26,20 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.platform = Gem::Platform::RUBY
|
27
27
|
spec.required_ruby_version = '>= 2.7.0'
|
28
28
|
|
29
|
-
spec.add_dependency 'sequel'
|
30
|
-
spec.add_development_dependency 'bundler'
|
31
|
-
spec.add_development_dependency 'minitest-utils'
|
32
|
-
spec.add_development_dependency 'pry-byebug'
|
33
|
-
spec.add_development_dependency 'rake'
|
34
|
-
spec.add_development_dependency 'rubocop'
|
35
|
-
spec.add_development_dependency 'simplecov'
|
29
|
+
spec.add_dependency 'sequel', '>= 5.28', '<5.73'
|
30
|
+
spec.add_development_dependency 'bundler', '>= 2.2.4'
|
31
|
+
spec.add_development_dependency 'minitest-utils', '~> 0.4.6'
|
32
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.10.1'
|
33
|
+
spec.add_development_dependency 'rake', '~> 13.0.2'
|
34
|
+
spec.add_development_dependency 'rubocop', '~> 1.56.3'
|
35
|
+
spec.add_development_dependency 'simplecov', '~> 0.22.0'
|
36
36
|
if RUBY_ENGINE == 'jruby'
|
37
37
|
# JRuby Adapter Dependencies
|
38
|
-
spec.add_development_dependency 'jdbc-mysql'
|
39
|
-
spec.add_development_dependency 'jdbc-postgres'
|
38
|
+
spec.add_development_dependency 'jdbc-mysql', '~> 8.0.17'
|
39
|
+
spec.add_development_dependency 'jdbc-postgres', '~> 42.2.14'
|
40
40
|
else
|
41
41
|
# MRI/Rubinius Adapter Dependencies
|
42
|
-
spec.add_development_dependency 'mysql2'
|
43
|
-
spec.add_development_dependency 'pg'
|
42
|
+
spec.add_development_dependency 'mysql2', '~> 0.5.3'
|
43
|
+
spec.add_development_dependency 'pg', '~> 1.5.4'
|
44
44
|
end
|
45
45
|
end
|
data/test/mysql_test_helper.rb
CHANGED
@@ -2,18 +2,14 @@
|
|
2
2
|
|
3
3
|
require 'test_helper'
|
4
4
|
|
5
|
-
MysqlDB = Sequel.connect(
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
class Builder < Sequel::Model
|
16
|
-
end
|
5
|
+
MysqlDB = Sequel.connect(
|
6
|
+
adapter: 'mysql2',
|
7
|
+
user: ENV['TEST_MYSQL_USERNAME'] || 'root',
|
8
|
+
password: ENV['TEST_MYSQL_PASSWORD'] || 'root',
|
9
|
+
host: ENV['TEST_MYSQL_HOST'] || '127.0.0.1',
|
10
|
+
port: ENV['TEST_MYSQL_PORT'] || 3306,
|
11
|
+
database: ENV['TEST_MYSQL_DATABASE'] || 'test'
|
12
|
+
)
|
17
13
|
|
18
14
|
module MysqlTestHelper
|
19
15
|
def recreate_table
|
@@ -25,4 +21,12 @@ module MysqlTestHelper
|
|
25
21
|
sql = 'CREATE TABLE wares (id INT AUTO_INCREMENT, slug VARCHAR(255), quantity INT DEFAULT(0), PRIMARY KEY(id));'
|
26
22
|
MysqlDB.run sql
|
27
23
|
end
|
24
|
+
|
25
|
+
def with_migration(&block)
|
26
|
+
migration_class = Sequel::Migration
|
27
|
+
|
28
|
+
Sequel::Model.db = MysqlDB
|
29
|
+
|
30
|
+
Class.new(migration_class, &block).new(MysqlDB)
|
31
|
+
end
|
28
32
|
end
|
@@ -2,18 +2,14 @@
|
|
2
2
|
|
3
3
|
require 'test_helper'
|
4
4
|
|
5
|
-
PostgresqlDB = Sequel.connect(
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
class Master < Sequel::Model
|
16
|
-
end
|
5
|
+
PostgresqlDB = Sequel.connect(
|
6
|
+
adapter: 'postgres',
|
7
|
+
user: ENV['TEST_POSTGRES_USERNAME'] || 'postgres',
|
8
|
+
password: ENV['TEST_POSTGRES_PASSWORD'] || 'postgres',
|
9
|
+
host: ENV['TEST_POSTGRES_HOST'] || 'localhost',
|
10
|
+
port: ENV['TEST_POSTGRES_PORT'] || 5432,
|
11
|
+
database: ENV['TEST_POSTGRES_DATABASE'] || 'test'
|
12
|
+
)
|
17
13
|
|
18
14
|
module PostgresqlTestHelper
|
19
15
|
def recreate_table
|
@@ -25,4 +21,12 @@ module PostgresqlTestHelper
|
|
25
21
|
sql = 'CREATE TABLE things (id SERIAL PRIMARY KEY, slug VARCHAR(255), quantity INTEGER DEFAULT 0);'
|
26
22
|
PostgresqlDB.run sql
|
27
23
|
end
|
24
|
+
|
25
|
+
def with_migration(&block)
|
26
|
+
migration_class = Sequel::Migration
|
27
|
+
|
28
|
+
Sequel::Model.db = PostgresqlDB
|
29
|
+
|
30
|
+
Class.new(migration_class, &block).new(PostgresqlDB)
|
31
|
+
end
|
28
32
|
end
|
@@ -10,97 +10,108 @@ class MysqlSequenceTest < Minitest::Test
|
|
10
10
|
end
|
11
11
|
|
12
12
|
test 'adds sequence with default values' do
|
13
|
-
|
14
|
-
up
|
13
|
+
with_migration do
|
14
|
+
def up
|
15
|
+
# create_sequence :position, {start: 1, increment: 1} - default values
|
15
16
|
create_sequence :position
|
16
17
|
end
|
17
|
-
end.
|
18
|
+
end.up
|
18
19
|
|
19
|
-
assert_equal 1,
|
20
|
-
assert_equal 2,
|
20
|
+
assert_equal 1, MysqlDB.nextval(:position)
|
21
|
+
assert_equal 2, MysqlDB.nextval(:position)
|
21
22
|
end
|
22
23
|
|
23
|
-
test 'adds sequence reader within inherited class' do
|
24
|
-
|
25
|
-
up
|
24
|
+
test 'adds sequence reader within model and its inherited class' do
|
25
|
+
with_migration do
|
26
|
+
def up
|
26
27
|
create_sequence :position
|
27
28
|
end
|
28
|
-
end.
|
29
|
+
end.up
|
29
30
|
|
30
|
-
|
31
|
-
|
31
|
+
class Ware < Sequel::Model; end
|
32
|
+
|
33
|
+
assert_equal 1, Ware.db.nextval('position')
|
34
|
+
assert_equal 2, Ware.db.nextval('position')
|
35
|
+
|
36
|
+
class InheritedWare < Ware; end
|
37
|
+
|
38
|
+
assert_equal 3, InheritedWare.db.nextval(:position)
|
39
|
+
assert_equal 4, InheritedWare.db.nextval(:position)
|
32
40
|
end
|
33
41
|
|
34
42
|
test 'adds sequence starting at 100' do
|
35
|
-
|
36
|
-
up
|
43
|
+
with_migration do
|
44
|
+
def up
|
37
45
|
create_sequence :position, start: 100
|
38
46
|
end
|
39
|
-
end.
|
47
|
+
end.up
|
40
48
|
|
41
|
-
assert_equal 100,
|
42
|
-
assert_equal 101,
|
49
|
+
assert_equal 100, MysqlDB.nextval(:position)
|
50
|
+
assert_equal 101, MysqlDB.nextval(:position)
|
43
51
|
end
|
44
52
|
|
45
53
|
test 'adds sequence incremented by 2' do
|
46
|
-
|
47
|
-
up
|
54
|
+
with_migration do
|
55
|
+
def up
|
48
56
|
create_sequence :position, increment: 2
|
49
57
|
end
|
50
|
-
end.
|
58
|
+
end.up
|
51
59
|
|
52
|
-
assert_equal 1,
|
53
|
-
assert_equal 3,
|
60
|
+
assert_equal 1, MysqlDB.nextval(:position)
|
61
|
+
assert_equal 3, MysqlDB.nextval(:position)
|
54
62
|
end
|
55
63
|
|
56
64
|
test 'adds sequence incremented by 2 (using :step alias)' do
|
57
|
-
|
58
|
-
up
|
65
|
+
with_migration do
|
66
|
+
def up
|
59
67
|
create_sequence :position, step: 2
|
60
68
|
end
|
61
|
-
end.
|
69
|
+
end.up
|
62
70
|
|
63
|
-
assert_equal 1,
|
64
|
-
assert_equal 3,
|
71
|
+
assert_equal 1, MysqlDB.nextval(:position)
|
72
|
+
assert_equal 3, MysqlDB.nextval(:position)
|
65
73
|
end
|
66
74
|
|
67
75
|
test 'returns current/last sequence value without incrementing it' do
|
68
|
-
|
69
|
-
up
|
76
|
+
with_migration do
|
77
|
+
def up
|
70
78
|
create_sequence :position
|
71
79
|
end
|
72
|
-
end.
|
80
|
+
end.up
|
73
81
|
|
74
|
-
|
82
|
+
MysqlDB.nextval(:position)
|
75
83
|
|
76
|
-
assert_equal 1,
|
77
|
-
assert_equal 1,
|
78
|
-
assert_equal 1,
|
79
|
-
assert_equal 1,
|
84
|
+
assert_equal 1, MysqlDB.currval(:position)
|
85
|
+
assert_equal 1, MysqlDB.lastval(:position)
|
86
|
+
assert_equal 1, MysqlDB.currval(:position)
|
87
|
+
assert_equal 1, MysqlDB.lastval(:position)
|
80
88
|
end
|
81
89
|
|
82
90
|
test 'sets sequence value' do
|
83
|
-
|
84
|
-
up
|
91
|
+
with_migration do
|
92
|
+
def up
|
85
93
|
create_sequence :position
|
86
94
|
end
|
87
|
-
end.
|
95
|
+
end.up
|
88
96
|
|
89
|
-
|
90
|
-
assert_equal
|
97
|
+
MysqlDB.nextval(:position)
|
98
|
+
assert_equal MysqlDB.currval(:position), 1
|
91
99
|
|
100
|
+
MysqlDB.setval(:position, 101)
|
92
101
|
# in mariaDB, 'lastval' only works after 'nextval' rather than 'setval'
|
93
|
-
|
94
|
-
|
95
|
-
|
102
|
+
assert_equal 1, MysqlDB.lastval(:position)
|
103
|
+
|
104
|
+
MysqlDB.nextval(:position)
|
105
|
+
# now the value is correct
|
106
|
+
assert_equal 102, MysqlDB.lastval(:position)
|
96
107
|
end
|
97
108
|
|
98
109
|
test 'drops sequence and check_sequences' do
|
99
|
-
|
100
|
-
up
|
110
|
+
with_migration do
|
111
|
+
def up
|
101
112
|
create_sequence :position
|
102
113
|
end
|
103
|
-
end.
|
114
|
+
end.up
|
104
115
|
|
105
116
|
sequence = MysqlDB.check_sequences.find_all do |seq|
|
106
117
|
seq[:Tables_in_test] == 'position'
|
@@ -108,11 +119,11 @@ class MysqlSequenceTest < Minitest::Test
|
|
108
119
|
|
109
120
|
assert_equal 1, sequence.size
|
110
121
|
|
111
|
-
|
112
|
-
down
|
122
|
+
with_migration do
|
123
|
+
def down
|
113
124
|
drop_sequence :position
|
114
125
|
end
|
115
|
-
end.
|
126
|
+
end.down
|
116
127
|
|
117
128
|
sequence = MysqlDB.check_sequences.find do |seq|
|
118
129
|
seq[:sequence_name] == 'position'
|
@@ -127,15 +138,14 @@ class MysqlSequenceTest < Minitest::Test
|
|
127
138
|
assert !list.include?('b')
|
128
139
|
assert !list.include?('c')
|
129
140
|
|
130
|
-
|
131
|
-
up
|
141
|
+
with_migration do
|
142
|
+
def up
|
132
143
|
drop_table :things, if_exists: true
|
133
|
-
# drop_table :masters, if_exists: true
|
134
144
|
create_sequence :c
|
135
145
|
create_sequence :a
|
136
146
|
create_sequence :b
|
137
147
|
end
|
138
|
-
end.
|
148
|
+
end.up
|
139
149
|
|
140
150
|
list = MysqlDB.check_sequences.map { |s| s[:Tables_in_test] }
|
141
151
|
assert list.include?('a')
|
@@ -144,20 +154,20 @@ class MysqlSequenceTest < Minitest::Test
|
|
144
154
|
end
|
145
155
|
|
146
156
|
test 'creates table that references sequence' do
|
147
|
-
|
148
|
-
up
|
157
|
+
with_migration do
|
158
|
+
def up
|
149
159
|
drop_table :builders, if_exists: true
|
150
160
|
create_sequence :position_id, if_exists: false
|
151
161
|
create_table :builders do
|
152
162
|
primary_key :id
|
153
163
|
String :name, text: true
|
154
|
-
|
155
|
-
# PostgreSQL uses bigint as the sequence's default type.
|
156
164
|
Bignum :position, null: false
|
157
165
|
end
|
158
166
|
set_column_default_nextval :builders, :position, :position_id
|
159
167
|
end
|
160
|
-
end.
|
168
|
+
end.up
|
169
|
+
|
170
|
+
class Builder < Sequel::Model; end
|
161
171
|
|
162
172
|
builder1 = Builder.create(name: 'Builder 1')
|
163
173
|
pos1 = MysqlDB.currval(:position_id)
|
@@ -10,96 +10,103 @@ class PostgresqlSequenceTest < Minitest::Test
|
|
10
10
|
end
|
11
11
|
|
12
12
|
test 'adds sequence with default values' do
|
13
|
-
|
14
|
-
up
|
13
|
+
with_migration do
|
14
|
+
def up
|
15
15
|
# create_sequence :position, {start: 1, increment: 1} - default values
|
16
16
|
create_sequence :position
|
17
17
|
end
|
18
|
-
end.
|
18
|
+
end.up
|
19
19
|
|
20
20
|
assert_equal 1, PostgresqlDB.nextval('position')
|
21
21
|
assert_equal 2, PostgresqlDB.nextval('position')
|
22
22
|
end
|
23
23
|
|
24
|
-
test 'adds sequence reader within inherited class' do
|
25
|
-
|
26
|
-
up
|
24
|
+
test 'adds sequence reader within model and its inherited class' do
|
25
|
+
with_migration do
|
26
|
+
def up
|
27
27
|
create_sequence :position
|
28
28
|
end
|
29
|
-
end.
|
29
|
+
end.up
|
30
30
|
|
31
|
-
|
32
|
-
|
31
|
+
class Thing < Sequel::Model; end
|
32
|
+
|
33
|
+
assert_equal 1, Thing.db.nextval('position')
|
34
|
+
assert_equal 2, Thing.db.nextval('position')
|
35
|
+
|
36
|
+
class InheritedThing < Thing; end
|
37
|
+
|
38
|
+
assert_equal 3, InheritedThing.db.nextval(:position)
|
39
|
+
assert_equal 4, InheritedThing.db.nextval(:position)
|
33
40
|
end
|
34
41
|
|
35
42
|
test 'adds sequence starting at 100' do
|
36
|
-
|
37
|
-
up
|
43
|
+
with_migration do
|
44
|
+
def up
|
38
45
|
create_sequence :position, start: 100
|
39
46
|
end
|
40
|
-
end.
|
47
|
+
end.up
|
41
48
|
|
42
|
-
assert_equal 100,
|
43
|
-
assert_equal 101,
|
49
|
+
assert_equal 100, PostgresqlDB.nextval(:position)
|
50
|
+
assert_equal 101, PostgresqlDB.nextval(:position)
|
44
51
|
end
|
45
52
|
|
46
53
|
test 'adds sequence incremented by 2' do
|
47
|
-
|
48
|
-
up
|
54
|
+
with_migration do
|
55
|
+
def up
|
49
56
|
create_sequence :position, increment: 2
|
50
57
|
end
|
51
|
-
end.
|
58
|
+
end.up
|
52
59
|
|
53
|
-
assert_equal 1,
|
54
|
-
assert_equal 3,
|
60
|
+
assert_equal 1, PostgresqlDB.nextval(:position)
|
61
|
+
assert_equal 3, PostgresqlDB.nextval(:position)
|
55
62
|
end
|
56
63
|
|
57
64
|
test 'adds sequence incremented by 2 (using :step alias)' do
|
58
|
-
|
59
|
-
up
|
65
|
+
with_migration do
|
66
|
+
def up
|
60
67
|
create_sequence :position, step: 2
|
61
68
|
end
|
62
|
-
end.
|
69
|
+
end.up
|
63
70
|
|
64
|
-
assert_equal 1,
|
65
|
-
assert_equal 3,
|
71
|
+
assert_equal 1, PostgresqlDB.nextval(:position)
|
72
|
+
assert_equal 3, PostgresqlDB.nextval(:position)
|
66
73
|
end
|
67
74
|
|
68
75
|
test 'returns current (or last as alias) sequence value without incrementing it' do
|
69
|
-
|
70
|
-
up
|
76
|
+
with_migration do
|
77
|
+
def up
|
71
78
|
create_sequence :position, start: 2, increment: 2
|
72
79
|
end
|
73
|
-
end.
|
80
|
+
end.up
|
74
81
|
|
75
|
-
|
82
|
+
PostgresqlDB.nextval(:position)
|
76
83
|
|
77
|
-
assert_equal 2,
|
78
|
-
assert_equal 2,
|
79
|
-
assert_equal 2,
|
80
|
-
assert_equal 2,
|
84
|
+
assert_equal 2, PostgresqlDB.currval(:position)
|
85
|
+
assert_equal 2, PostgresqlDB.lastval(:position)
|
86
|
+
assert_equal 2, PostgresqlDB.currval(:position)
|
87
|
+
assert_equal 2, PostgresqlDB.lastval(:position)
|
81
88
|
end
|
82
89
|
|
83
90
|
test 'sets sequence value' do
|
84
|
-
|
85
|
-
up
|
91
|
+
with_migration do
|
92
|
+
def up
|
86
93
|
create_sequence :position
|
87
94
|
end
|
88
|
-
end.
|
95
|
+
end.up
|
89
96
|
|
90
|
-
|
91
|
-
assert_equal
|
97
|
+
PostgresqlDB.nextval(:position)
|
98
|
+
assert_equal PostgresqlDB.currval(:position), 1
|
92
99
|
|
93
|
-
|
94
|
-
assert_equal 101,
|
100
|
+
PostgresqlDB.setval(:position, 101)
|
101
|
+
assert_equal 101, PostgresqlDB.currval(:position)
|
95
102
|
end
|
96
103
|
|
97
104
|
test 'drops sequence and check_sequences' do
|
98
|
-
|
99
|
-
up
|
105
|
+
with_migration do
|
106
|
+
def up
|
100
107
|
create_sequence :position
|
101
108
|
end
|
102
|
-
end.
|
109
|
+
end.up
|
103
110
|
|
104
111
|
sequence = PostgresqlDB.check_sequences.find_all do |seq|
|
105
112
|
seq[:sequence_name] == 'position'
|
@@ -107,11 +114,11 @@ class PostgresqlSequenceTest < Minitest::Test
|
|
107
114
|
|
108
115
|
assert_equal 1, sequence.size
|
109
116
|
|
110
|
-
|
111
|
-
down
|
117
|
+
with_migration do
|
118
|
+
def down
|
112
119
|
drop_sequence :position
|
113
120
|
end
|
114
|
-
end.
|
121
|
+
end.down
|
115
122
|
|
116
123
|
sequence = PostgresqlDB.check_sequences.find do |seq|
|
117
124
|
seq[:sequence_name] == 'position'
|
@@ -126,15 +133,14 @@ class PostgresqlSequenceTest < Minitest::Test
|
|
126
133
|
assert !list.include?('b')
|
127
134
|
assert !list.include?('c')
|
128
135
|
|
129
|
-
|
130
|
-
up
|
136
|
+
with_migration do
|
137
|
+
def up
|
131
138
|
drop_table :things, if_exists: true
|
132
|
-
# drop_table :masters, if_exists: true
|
133
139
|
create_sequence :c
|
134
140
|
create_sequence :a
|
135
141
|
create_sequence :b
|
136
142
|
end
|
137
|
-
end.
|
143
|
+
end.up
|
138
144
|
|
139
145
|
list = PostgresqlDB.check_sequences.map { |s| s[:sequence_name] }
|
140
146
|
assert list.include?('a')
|
@@ -145,30 +151,30 @@ class PostgresqlSequenceTest < Minitest::Test
|
|
145
151
|
test 'checks custom sequence generated from code' do
|
146
152
|
assert_equal PostgresqlDB.custom_sequence?(:c), false
|
147
153
|
|
148
|
-
|
149
|
-
up
|
154
|
+
with_migration do
|
155
|
+
def up
|
150
156
|
create_sequence :c
|
151
157
|
end
|
152
|
-
end.
|
158
|
+
end.up
|
153
159
|
|
154
160
|
assert_equal PostgresqlDB.custom_sequence?(:c), true
|
155
161
|
end
|
156
162
|
|
157
163
|
test 'creates table that references sequence' do
|
158
|
-
|
159
|
-
up
|
164
|
+
with_migration do
|
165
|
+
def up
|
160
166
|
drop_table :masters, if_exists: true
|
161
167
|
create_sequence :position_id, if_exists: false
|
162
|
-
create_table :masters do
|
168
|
+
create_table :masters, if_not_exists: true do
|
163
169
|
primary_key :id
|
164
170
|
String :name, text: true
|
165
|
-
|
166
|
-
# PostgreSQL uses bigint as the sequence's default type.
|
167
171
|
Bignum :position, null: false
|
168
172
|
end
|
169
173
|
set_column_default_nextval :masters, :position, :position_id
|
170
174
|
end
|
171
|
-
end.
|
175
|
+
end.up
|
176
|
+
|
177
|
+
class Master < Sequel::Model; end
|
172
178
|
|
173
179
|
master1 = Master.create(name: 'MASTER 1')
|
174
180
|
pos1 = PostgresqlDB.currval(:position_id)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel-sequence
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nikolai Bocharov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-09-
|
11
|
+
date: 2023-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -16,126 +16,132 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5.28'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '5.73'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
29
|
+
version: '5.28'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '5.73'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: bundler
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
39
|
+
version: 2.2.4
|
34
40
|
type: :development
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
44
|
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
46
|
+
version: 2.2.4
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: minitest-utils
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- - "
|
51
|
+
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
53
|
+
version: 0.4.6
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
|
-
- - "
|
58
|
+
- - "~>"
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
60
|
+
version: 0.4.6
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: pry-byebug
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
|
-
- - "
|
65
|
+
- - "~>"
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
67
|
+
version: 3.10.1
|
62
68
|
type: :development
|
63
69
|
prerelease: false
|
64
70
|
version_requirements: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
|
-
- - "
|
72
|
+
- - "~>"
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
74
|
+
version: 3.10.1
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: rake
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
|
-
- - "
|
79
|
+
- - "~>"
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
81
|
+
version: 13.0.2
|
76
82
|
type: :development
|
77
83
|
prerelease: false
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
|
-
- - "
|
86
|
+
- - "~>"
|
81
87
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
88
|
+
version: 13.0.2
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
90
|
name: rubocop
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
|
-
- - "
|
93
|
+
- - "~>"
|
88
94
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
95
|
+
version: 1.56.3
|
90
96
|
type: :development
|
91
97
|
prerelease: false
|
92
98
|
version_requirements: !ruby/object:Gem::Requirement
|
93
99
|
requirements:
|
94
|
-
- - "
|
100
|
+
- - "~>"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
102
|
+
version: 1.56.3
|
97
103
|
- !ruby/object:Gem::Dependency
|
98
104
|
name: simplecov
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
100
106
|
requirements:
|
101
|
-
- - "
|
107
|
+
- - "~>"
|
102
108
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
109
|
+
version: 0.22.0
|
104
110
|
type: :development
|
105
111
|
prerelease: false
|
106
112
|
version_requirements: !ruby/object:Gem::Requirement
|
107
113
|
requirements:
|
108
|
-
- - "
|
114
|
+
- - "~>"
|
109
115
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
116
|
+
version: 0.22.0
|
111
117
|
- !ruby/object:Gem::Dependency
|
112
118
|
name: mysql2
|
113
119
|
requirement: !ruby/object:Gem::Requirement
|
114
120
|
requirements:
|
115
|
-
- - "
|
121
|
+
- - "~>"
|
116
122
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
123
|
+
version: 0.5.3
|
118
124
|
type: :development
|
119
125
|
prerelease: false
|
120
126
|
version_requirements: !ruby/object:Gem::Requirement
|
121
127
|
requirements:
|
122
|
-
- - "
|
128
|
+
- - "~>"
|
123
129
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
130
|
+
version: 0.5.3
|
125
131
|
- !ruby/object:Gem::Dependency
|
126
132
|
name: pg
|
127
133
|
requirement: !ruby/object:Gem::Requirement
|
128
134
|
requirements:
|
129
|
-
- - "
|
135
|
+
- - "~>"
|
130
136
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
137
|
+
version: 1.5.4
|
132
138
|
type: :development
|
133
139
|
prerelease: false
|
134
140
|
version_requirements: !ruby/object:Gem::Requirement
|
135
141
|
requirements:
|
136
|
-
- - "
|
142
|
+
- - "~>"
|
137
143
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
144
|
+
version: 1.5.4
|
139
145
|
description: |2
|
140
146
|
This gem provides a single interface for SEQUENCE functionality
|
141
147
|
in Postgresql and Mysql databases within the Sequel ORM.
|
@@ -145,8 +151,15 @@ executables: []
|
|
145
151
|
extensions: []
|
146
152
|
extra_rdoc_files:
|
147
153
|
- README.md
|
154
|
+
- LICENSE.md
|
148
155
|
files:
|
156
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
157
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
158
|
+
- ".github/PULL_REQUEST_TEMPLATE.md"
|
159
|
+
- ".github/dependabot.yml"
|
160
|
+
- ".github/workflows/ci.yml"
|
149
161
|
- ".gitignore"
|
162
|
+
- ".rubocop.yml"
|
150
163
|
- CHANGELOG.md
|
151
164
|
- CODE_OF_CONDUCT.md
|
152
165
|
- CONTRIBUTING.md
|