sequel_bitemporal 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +64 -0
- data/lib/sequel/plugins/bitemporal.rb +3 -3
- data/sequel_bitemporal.gemspec +1 -1
- data/spec/bitemporal_serialization_spec.rb +2 -2
- data/spec/spec_helper.rb +1 -5
- data/spec/support/db.rb +14 -1
- metadata +7 -8
- data/.travis.yml +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33df8e3ea5762139cd17bc15469b6f4c0535e698191eff1db9feb1387be4eb9b
|
4
|
+
data.tar.gz: da3482ad1fa5d018fc50e95c45940beba6013205574f65257be300abbfc119ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b6f966365eaf5c42143b5e050c467aaef0b1e479c68fd792cbedc1cf4d3c420962651254ca9dd1344c95e4401f3ee2ba56f6acb54702248a8d4d5684d351265
|
7
|
+
data.tar.gz: 176b15f045e9b91b29857f0b5e1ffcbb313d44cd623bd10718cbdabd359ba929b55c231882d639e47499c496307c8b5bbf9c160cacc11569d46c624bca9439d3
|
@@ -0,0 +1,64 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: ['**']
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
tests:
|
11
|
+
services:
|
12
|
+
postgres:
|
13
|
+
image: postgres:13
|
14
|
+
env:
|
15
|
+
POSTGRES_USER: postgres
|
16
|
+
POSTGRES_PASSWORD: postgres
|
17
|
+
ports:
|
18
|
+
- 5432
|
19
|
+
options: >-
|
20
|
+
--health-cmd pg_isready
|
21
|
+
--health-interval 10s
|
22
|
+
--health-timeout 5s
|
23
|
+
--health-retries 5
|
24
|
+
|
25
|
+
runs-on: ubuntu-latest
|
26
|
+
strategy:
|
27
|
+
fail-fast: false
|
28
|
+
matrix:
|
29
|
+
ruby:
|
30
|
+
- "2.7"
|
31
|
+
- "3.0"
|
32
|
+
- "3.1"
|
33
|
+
- "3.2"
|
34
|
+
- "3.3"
|
35
|
+
name: Ruby ${{ matrix.ruby }}
|
36
|
+
|
37
|
+
env:
|
38
|
+
SEQUEL: "~> 5.0"
|
39
|
+
BUNDLE_GEMFILE: "ci/sequel.gemfile"
|
40
|
+
steps:
|
41
|
+
- uses: actions/checkout@v3
|
42
|
+
- name: Install db dependencies and check connections
|
43
|
+
run: |
|
44
|
+
env PGPASSWORD=postgres psql -h localhost -p ${{ job.services.postgres.ports[5432] }} -U postgres -l
|
45
|
+
- uses: ruby/setup-ruby@v1
|
46
|
+
with:
|
47
|
+
ruby-version: ${{ matrix.ruby }}
|
48
|
+
bundler-cache: true
|
49
|
+
- name: Create databases
|
50
|
+
run: |
|
51
|
+
env PGPASSWORD=postgres psql -c 'create database sequel_bitemporal_test;' -U postgres -h localhost -p ${{ job.services.postgres.ports[5432] }}
|
52
|
+
- name: Run PostgreSQL tests
|
53
|
+
run: bundle exec rake spec
|
54
|
+
env:
|
55
|
+
TEST_ADAPTER: postgresql
|
56
|
+
TEST_DATABASE: sequel_bitemporal_test
|
57
|
+
TEST_DATABASE_HOST: localhost
|
58
|
+
TEST_DATABASE_PORT: ${{ job.services.postgres.ports[5432] }}
|
59
|
+
TEST_USERNAME: postgres
|
60
|
+
TEST_PASSWORD: postgres
|
61
|
+
- name: Run SQLite tests
|
62
|
+
run: bundle exec rake spec
|
63
|
+
env:
|
64
|
+
TEST_ADAPTER: sqlite
|
@@ -332,7 +332,7 @@ module Sequel
|
|
332
332
|
{ master_id: id }
|
333
333
|
end
|
334
334
|
|
335
|
-
current_version.
|
335
|
+
current_version.columns.each do |key|
|
336
336
|
next if excluded_columns.include? key
|
337
337
|
current_attributes[key] = current_version.public_send key
|
338
338
|
end if current_version?
|
@@ -592,7 +592,7 @@ module Sequel
|
|
592
592
|
|
593
593
|
def save_fossil(expired, attributes={})
|
594
594
|
fossil = model.version_class.new
|
595
|
-
expired_attributes = expired.
|
595
|
+
expired_attributes = expired.columns.each_with_object({}) do |key, hash|
|
596
596
|
hash[key] = expired.public_send key
|
597
597
|
end
|
598
598
|
expired_attributes.delete :id
|
@@ -603,7 +603,7 @@ module Sequel
|
|
603
603
|
|
604
604
|
def save_propagated(version, attributes={})
|
605
605
|
propagated = model.version_class.new
|
606
|
-
version_attributes = version.
|
606
|
+
version_attributes = version.columns.each_with_object({}) do |key, hash|
|
607
607
|
hash[key] = version.public_send key
|
608
608
|
end
|
609
609
|
version_attributes.delete :id
|
data/sequel_bitemporal.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "sequel_bitemporal"
|
6
|
-
s.version = "0.
|
6
|
+
s.version = "0.11.0"
|
7
7
|
s.authors = ["Joseph HALTER", "Jonathan TRON"]
|
8
8
|
s.email = ["joseph.halter@thetalentbox.com", "jonathan.tron@thetalentbox.com"]
|
9
9
|
s.homepage = "https://github.com/TalentBox/sequel_bitemporal"
|
@@ -91,10 +91,10 @@ RSpec.describe "Sequel::Plugins::Bitemporal", :skip_jdbc_sqlite do
|
|
91
91
|
expect(
|
92
92
|
master.update_attributes valid_from: Date.parse("2016-01-01"), price: 10
|
93
93
|
).to be_truthy
|
94
|
-
result = master.versions_dataset.
|
94
|
+
result = master.versions_dataset.all.map do |version|
|
95
95
|
[!!version.expired_at, version.valid_from.year, version.valid_to.year, version.price, version.length, version.width, version[:name]]
|
96
96
|
end
|
97
|
-
expect(result).to
|
97
|
+
expect(result).to match_array [
|
98
98
|
[false, 2016, 2017, 10, nil, nil, nil],
|
99
99
|
[false, 2017, 2018, 0, 10, nil, "{}"],
|
100
100
|
[false, 2018, 2019, 0, 20, nil, nil],
|
data/spec/spec_helper.rb
CHANGED
@@ -12,11 +12,7 @@ rspec_exclusions = {}
|
|
12
12
|
DB = if DbHelpers.pg?
|
13
13
|
`createdb sequel_bitemporal_test`
|
14
14
|
Sequel.extension :pg_range, :pg_range_ops
|
15
|
-
|
16
|
-
Sequel.connect "jdbc:postgresql://localhost/sequel_bitemporal_test"
|
17
|
-
else
|
18
|
-
Sequel.postgres "sequel_bitemporal_test"
|
19
|
-
end
|
15
|
+
Sequel.connect DbHelpers.pg_ruby_connect_uri
|
20
16
|
else
|
21
17
|
if Sequel::Plugins::Bitemporal.jruby?
|
22
18
|
rspec_exclusions[:skip_jdbc_sqlite] = true
|
data/spec/support/db.rb
CHANGED
@@ -1,13 +1,26 @@
|
|
1
1
|
module DbHelpers
|
2
2
|
|
3
3
|
def self.pg?
|
4
|
-
ENV.has_key? "
|
4
|
+
!ENV.has_key?("TEST_ADAPTER") || ENV["TEST_ADAPTER"]=="postgresql"
|
5
5
|
end
|
6
6
|
|
7
7
|
def self.jruby?
|
8
8
|
(defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby') || defined?(JRUBY_VERSION)
|
9
9
|
end
|
10
10
|
|
11
|
+
def self.pg_ruby_connect_uri
|
12
|
+
username = ENV.fetch("TEST_USERNAME", nil)
|
13
|
+
password = ENV.fetch("TEST_PASSWORD", nil)
|
14
|
+
auth = [username, password].compact.join(":")
|
15
|
+
|
16
|
+
uri = "postgresql://#{"#{auth}@" unless auth.empty?}#{ENV.fetch("TEST_DATABASE_HOST", "127.0.0.1")}:#{ENV.fetch("TEST_DATABASE_PORT", "5432")}/#{ENV.fetch("TEST_DATABASE", "sequel_bitemporal_test")}"
|
17
|
+
if jruby?
|
18
|
+
"jdbc:#{uri}"
|
19
|
+
else
|
20
|
+
uri
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
11
24
|
def db_setup(opts={})
|
12
25
|
use_time = opts[:use_time]
|
13
26
|
DB.drop_table(:room_versions) if DB.table_exists?(:room_versions)
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel_bitemporal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph HALTER
|
8
8
|
- Jonathan TRON
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-02-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sequel
|
@@ -81,10 +81,10 @@ executables: []
|
|
81
81
|
extensions: []
|
82
82
|
extra_rdoc_files: []
|
83
83
|
files:
|
84
|
+
- ".github/workflows/ci.yml"
|
84
85
|
- ".gitignore"
|
85
86
|
- ".rspec"
|
86
87
|
- ".ruby-version"
|
87
|
-
- ".travis.yml"
|
88
88
|
- Gemfile
|
89
89
|
- LICENSE
|
90
90
|
- README.md
|
@@ -106,7 +106,7 @@ homepage: https://github.com/TalentBox/sequel_bitemporal
|
|
106
106
|
licenses:
|
107
107
|
- MIT
|
108
108
|
metadata: {}
|
109
|
-
post_install_message:
|
109
|
+
post_install_message:
|
110
110
|
rdoc_options: []
|
111
111
|
require_paths:
|
112
112
|
- lib
|
@@ -121,9 +121,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0'
|
123
123
|
requirements: []
|
124
|
-
|
125
|
-
|
126
|
-
signing_key:
|
124
|
+
rubygems_version: 3.5.3
|
125
|
+
signing_key:
|
127
126
|
specification_version: 4
|
128
127
|
summary: Bitemporal versioning for sequel.
|
129
128
|
test_files:
|
data/.travis.yml
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
|
3
|
-
cache:
|
4
|
-
bundler: true
|
5
|
-
|
6
|
-
rvm:
|
7
|
-
- 2.3.8
|
8
|
-
- 2.4.5
|
9
|
-
- 2.5.3
|
10
|
-
- 2.6.0
|
11
|
-
- jruby-9.1.17.0
|
12
|
-
- jruby-9.2.5.0
|
13
|
-
before_script:
|
14
|
-
- psql -c 'create database sequel_bitemporal_test;' -U postgres
|
15
|
-
env:
|
16
|
-
- SQLITE=1 SEQUEL='~> 4.0'
|
17
|
-
- SQLITE=1 SEQUEL='~> 5.0'
|
18
|
-
- PG=1 SEQUEL='~> 4.0'
|
19
|
-
- PG=1 SEQUEL='~> 5.0'
|
20
|
-
gemfile:
|
21
|
-
- ci/sequel.gemfile
|
22
|
-
matrix:
|
23
|
-
allow_failures:
|
24
|
-
- rvm: jruby-9.1.17.0
|
25
|
-
env: PG=1 SEQUEL='~> 4.0'
|
26
|
-
- rvm: jruby-9.1.17.0
|
27
|
-
env: PG=1 SEQUEL='~> 5.0'
|
28
|
-
- rvm: jruby-9.2.5.0
|
29
|
-
env: PG=1 SEQUEL='~> 4.0'
|
30
|
-
- rvm: jruby-9.2.5.0
|
31
|
-
env: PG=1 SEQUEL='~> 5.0'
|