Skip to content

Commit 9d64e05

Browse files
committed
Replace DateTime usage with Time, DateTime is deprecated (ruby/date@58ca6e6)
1 parent 2889203 commit 9d64e05

8 files changed

Lines changed: 25 additions & 17 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ jobs:
3232
- "3.1"
3333
- "3.2"
3434
- "3.3"
35+
- "3.4"
36+
- "4.0"
3537
name: Ruby ${{ matrix.ruby }}
3638

3739
env:

.ruby-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.5.3
1+
4.0.2

lib/sequel/plugins/bitemporal.rb

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,36 @@
1-
require "date"
1+
require "time"
22

33
module Sequel
44
module Plugins
55
module Bitemporal
6+
VALIDITY_TIME_MAX = Time.utc 9999
7+
68
THREAD_POINT_IN_TIME_KEY = :sequel_plugins_bitemporal_point_in_time
79
def self.as_we_knew_it(time)
810
previous = Thread.current[THREAD_POINT_IN_TIME_KEY]
911
raise ArgumentError, "requires a block" unless block_given?
10-
Thread.current[THREAD_POINT_IN_TIME_KEY] = time.to_datetime
12+
Thread.current[THREAD_POINT_IN_TIME_KEY] = time.to_time.utc
1113
yield
1214
ensure
1315
Thread.current[THREAD_POINT_IN_TIME_KEY] = previous
1416
end
1517

1618
def self.point_in_time
17-
Thread.current[THREAD_POINT_IN_TIME_KEY] || DateTime.now
19+
Thread.current[THREAD_POINT_IN_TIME_KEY] || Time.now.utc
1820
end
1921

2022
THREAD_NOW_KEY = :sequel_plugins_bitemporal_now
2123
def self.at(time)
2224
previous = Thread.current[THREAD_NOW_KEY]
2325
raise ArgumentError, "requires a block" unless block_given?
24-
Thread.current[THREAD_NOW_KEY] = time.to_datetime
26+
Thread.current[THREAD_NOW_KEY] = time.to_time.utc
2527
yield
2628
ensure
2729
Thread.current[THREAD_NOW_KEY] = previous
2830
end
2931

3032
def self.now
31-
Thread.current[THREAD_NOW_KEY] || DateTime.now
33+
Thread.current[THREAD_NOW_KEY] || Time.now.utc
3234
end
3335

3436
def self.version_foreign_keys(master = nil)
@@ -185,14 +187,14 @@ def current?
185187
t = ::Sequel::Plugins::Bitemporal.point_in_time
186188
n = ::Sequel::Plugins::Bitemporal.now
187189
!new? &&
188-
created_at.to_datetime<=t &&
189-
(expired_at.nil? || expired_at.to_datetime>t) &&
190-
valid_from.to_datetime<=n &&
191-
valid_to.to_datetime>n
190+
created_at.to_time<=t &&
191+
(expired_at.nil? || expired_at.to_time>t) &&
192+
valid_from.to_time<=n &&
193+
valid_to.to_time>n
192194
end
193195
def destroy(opts={})
194196
expand_previous_version = opts.fetch(:expand_previous_version){
195-
valid_from.to_datetime>::Sequel::Plugins::Bitemporal.now
197+
valid_from.to_time>::Sequel::Plugins::Bitemporal.now
196198
}
197199
master.destroy_version self, expand_previous_version
198200
end
@@ -396,11 +398,11 @@ def destroy
396398
def destroy_version(version, expand_previous_version)
397399
now = ::Sequel::Plugins::Bitemporal.now
398400
point_in_time = ::Sequel::Plugins::Bitemporal.point_in_time
399-
return false if version.valid_to.to_datetime<=now
401+
return false if version.valid_to.to_time<=now
400402
associations.delete :current_version
401403
model.db.transaction do
402404
success = true
403-
version_was_valid = now>=version.valid_from.to_datetime
405+
version_was_valid = now>=version.valid_from.to_time
404406
if expand_previous_version
405407
previous = versions_dataset.where({
406408
expired_at: nil,
@@ -513,7 +515,7 @@ def expire_previous_versions
513515
expired = expired.exclude Sequel.lit("valid_from=valid_to")
514516
expired = expired.exclude Sequel.lit("valid_to<=?", pending_version.valid_from)
515517
pending_version.valid_to ||= expired.where(Sequel.lit("valid_from>?", pending_version.valid_from)).min(:valid_from)
516-
pending_version.valid_to ||= Time.utc 9999
518+
pending_version.valid_to ||= Sequel::Plugins::Bitemporal::VALIDITY_TIME_MAX
517519
expired = expired.exclude Sequel.lit("valid_from>=?", pending_version.valid_to)
518520
expired = expired.all
519521
expired.each do |expired_version|

sequel_bitemporal.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
1818

1919
s.add_runtime_dependency "sequel", ">= 4.0", "< 6.0"
2020

21-
s.add_development_dependency "rspec", "~> 3.13.0"
21+
s.add_development_dependency "rspec", "~> 3.13.2"
2222
s.add_development_dependency "timecop"
2323
s.add_development_dependency "rake"
2424
end

spec/bitemporal_date_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
require "date"
12
require "spec_helper"
23

34
RSpec.describe "Sequel::Plugins::Bitemporal" do

spec/bitemporal_date_with_range_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
require "date"
12
require "spec_helper"
3+
24
if DbHelpers.pg?
35
RSpec.describe "Sequel::Plugins::Bitemporal", "with ranges" do
46
before :all do

spec/bitemporal_serialization_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
require "spec_helper"
1+
require "date"
22
require "json"
3+
require "spec_helper"
34

45
RSpec.describe "Sequel::Plugins::Bitemporal", :skip_jdbc_sqlite do
56
before :all do

spec/support/db.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def self.pg_ruby_connect_uri
2424
def db_setup(opts={})
2525
use_time = opts[:use_time]
2626
DB.drop_table(:room_versions) if DB.table_exists?(:room_versions)
27-
DB.drop_table(:rooms) if DB.table_exists?(:rooms)
27+
DB.drop_table(:rooms, cascade: true) if DB.table_exists?(:rooms)
2828
DB.create_table! :rooms do
2929
primary_key :id
3030
Boolean :disabled, null: false, default: false

0 commit comments

Comments
 (0)