sequel_bitemporal 0.4.13 → 0.4.14

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.
@@ -1,3 +1,5 @@
1
+ require "date"
2
+
1
3
  module Sequel
2
4
  module Plugins
3
5
  module Bitemporal
@@ -5,28 +7,28 @@ module Sequel
5
7
  def self.as_we_knew_it(time)
6
8
  previous = Thread.current[THREAD_POINT_IN_TIME_KEY]
7
9
  raise ArgumentError, "requires a block" unless block_given?
8
- Thread.current[THREAD_POINT_IN_TIME_KEY] = time.to_time
10
+ Thread.current[THREAD_POINT_IN_TIME_KEY] = time.to_datetime
9
11
  yield
10
12
  ensure
11
13
  Thread.current[THREAD_POINT_IN_TIME_KEY] = previous
12
14
  end
13
15
 
14
16
  def self.point_in_time
15
- Thread.current[THREAD_POINT_IN_TIME_KEY] || Time.now
17
+ Thread.current[THREAD_POINT_IN_TIME_KEY] || DateTime.now
16
18
  end
17
19
 
18
20
  THREAD_NOW_KEY = :sequel_plugins_bitemporal_now
19
21
  def self.at(time)
20
22
  previous = Thread.current[THREAD_NOW_KEY]
21
23
  raise ArgumentError, "requires a block" unless block_given?
22
- Thread.current[THREAD_NOW_KEY] = time.to_time
24
+ Thread.current[THREAD_NOW_KEY] = time.to_datetime
23
25
  yield
24
26
  ensure
25
27
  Thread.current[THREAD_NOW_KEY] = previous
26
28
  end
27
29
 
28
30
  def self.now
29
- Thread.current[THREAD_NOW_KEY] || Time.now
31
+ Thread.current[THREAD_NOW_KEY] || DateTime.now
30
32
  end
31
33
 
32
34
  def self.configure(master, opts = {})
@@ -76,14 +78,14 @@ module Sequel
76
78
  t = ::Sequel::Plugins::Bitemporal.point_in_time
77
79
  n = ::Sequel::Plugins::Bitemporal.now
78
80
  !new? &&
79
- created_at.to_time<=t &&
80
- (expired_at.nil? || expired_at.to_time>t) &&
81
- valid_from.to_time<=n &&
82
- valid_to.to_time>n
81
+ created_at.to_datetime<=t &&
82
+ (expired_at.nil? || expired_at.to_datetime>t) &&
83
+ valid_from.to_datetime<=n &&
84
+ valid_to.to_datetime>n
83
85
  end
84
86
  def destroy(opts={})
85
87
  expand_previous_version = opts.fetch(:expand_previous_version){
86
- valid_from.to_time>::Sequel::Plugins::Bitemporal.now
88
+ valid_from.to_datetime>::Sequel::Plugins::Bitemporal.now
87
89
  }
88
90
  master.destroy_version self, expand_previous_version
89
91
  end
@@ -184,10 +186,10 @@ module Sequel
184
186
  def destroy_version(version, expand_previous_version)
185
187
  now = ::Sequel::Plugins::Bitemporal.now
186
188
  point_in_time = ::Sequel::Plugins::Bitemporal.point_in_time
187
- return false if version.valid_to.to_time<=now
189
+ return false if version.valid_to.to_datetime<=now
188
190
  model.db.transaction do
189
191
  success = true
190
- version_was_valid = now>=version.valid_from.to_time
192
+ version_was_valid = now>=version.valid_from.to_datetime
191
193
  if expand_previous_version
192
194
  previous = versions_dataset.where({
193
195
  expired_at: nil,
@@ -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.4.13"
6
+ s.version = "0.4.14"
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"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel_bitemporal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.13
4
+ version: 0.4.14
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -127,7 +127,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
127
  version: '0'
128
128
  segments:
129
129
  - 0
130
- hash: 2261132615164155074
130
+ hash: -1683115456060761780
131
131
  required_rubygems_version: !ruby/object:Gem::Requirement
132
132
  none: false
133
133
  requirements:
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  version: '0'
137
137
  segments:
138
138
  - 0
139
- hash: 2261132615164155074
139
+ hash: -1683115456060761780
140
140
  requirements: []
141
141
  rubyforge_project:
142
142
  rubygems_version: 1.8.24