ndr_support 5.8.2 → 5.8.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/code_safety.yml +12 -12
- data/lib/ndr_support/daterange.rb +5 -2
- data/lib/ndr_support/ourdate/build_datetime.rb +36 -0
- data/lib/ndr_support/ourdate.rb +1 -32
- data/lib/ndr_support/version.rb +1 -1
- metadata +4 -4
- data/lib/ndr_support/integer/julian_date_conversions.rb +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 528b4fe69aceac0e252cab457de3d2b01436ef6f188308858e014a4ceee43299
|
4
|
+
data.tar.gz: c15d6e7487920ccf74d4ff1711cbc062346de5c6457c7d9552b216536428e5e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5759f651f4ddea307afb890f7163972da66d3704b8d904b77ff60a88ffd77704419a1347ee96425c3fe5a60f1c4e558cc69c9411630d6e6121e54ad03148b842
|
7
|
+
data.tar.gz: 5837a1948066929be0486edc36f3571bffefb7b086f88a7d2f9c1bb047a3df1970221d97e683a3dcb89517f17822d60967f2f25381b85a18384e09d444860b7f
|
data/CHANGELOG.md
CHANGED
data/code_safety.yml
CHANGED
@@ -22,8 +22,8 @@ file safety:
|
|
22
22
|
safe_revision: a02f14cbf1fc36fbaf820365fdedfdc9af326db1
|
23
23
|
CHANGELOG.md:
|
24
24
|
comments:
|
25
|
-
reviewed_by:
|
26
|
-
safe_revision:
|
25
|
+
reviewed_by: brian.shand
|
26
|
+
safe_revision: efa8b316f7ee8169baf8b74b4d8e9d3bf02499d5
|
27
27
|
CODE_OF_CONDUCT.md:
|
28
28
|
comments:
|
29
29
|
reviewed_by: timgentry
|
@@ -74,8 +74,8 @@ file safety:
|
|
74
74
|
safe_revision: c1158eccb843b637b4dd82815dc7c081f12b93e4
|
75
75
|
lib/ndr_support/daterange.rb:
|
76
76
|
comments:
|
77
|
-
reviewed_by:
|
78
|
-
safe_revision:
|
77
|
+
reviewed_by: brian.shand
|
78
|
+
safe_revision: 9d19593cc45a9f1724c4b34a1a05a5ff48003084
|
79
79
|
lib/ndr_support/hash.rb:
|
80
80
|
comments:
|
81
81
|
reviewed_by: pauleves
|
@@ -84,10 +84,6 @@ file safety:
|
|
84
84
|
comments:
|
85
85
|
reviewed_by: josh.pencheon
|
86
86
|
safe_revision: 2685f35c907af6968a69eabb5ab9424b490d0f40
|
87
|
-
lib/ndr_support/integer/julian_date_conversions.rb:
|
88
|
-
comments:
|
89
|
-
reviewed_by: ollietulloch
|
90
|
-
safe_revision: '09b3f97fb4c1afc88d0d070c39796b1f60c39d25'
|
91
87
|
lib/ndr_support/integer/rounding.rb:
|
92
88
|
comments:
|
93
89
|
reviewed_by: josh.pencheon
|
@@ -106,8 +102,12 @@ file safety:
|
|
106
102
|
safe_revision: 50a4293953f9ae227823c390b069a3ed4825074c
|
107
103
|
lib/ndr_support/ourdate.rb:
|
108
104
|
comments:
|
109
|
-
reviewed_by:
|
110
|
-
safe_revision:
|
105
|
+
reviewed_by: brian.shand
|
106
|
+
safe_revision: 9d19593cc45a9f1724c4b34a1a05a5ff48003084
|
107
|
+
lib/ndr_support/ourdate/build_datetime.rb:
|
108
|
+
comments:
|
109
|
+
reviewed_by: brian.shand
|
110
|
+
safe_revision: 9d19593cc45a9f1724c4b34a1a05a5ff48003084
|
111
111
|
lib/ndr_support/ourtime.rb:
|
112
112
|
comments:
|
113
113
|
reviewed_by: ollietulloch
|
@@ -166,8 +166,8 @@ file safety:
|
|
166
166
|
safe_revision: '09b3f97fb4c1afc88d0d070c39796b1f60c39d25'
|
167
167
|
lib/ndr_support/version.rb:
|
168
168
|
comments:
|
169
|
-
reviewed_by:
|
170
|
-
safe_revision:
|
169
|
+
reviewed_by: brian.shand
|
170
|
+
safe_revision: efa8b316f7ee8169baf8b74b4d8e9d3bf02499d5
|
171
171
|
lib/ndr_support/working_days.rb:
|
172
172
|
comments:
|
173
173
|
reviewed_by: josh.pencheon
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'active_support/core_ext/enumerable'
|
2
2
|
require 'active_support/time'
|
3
|
-
require 'ndr_support/
|
3
|
+
require 'ndr_support/ourdate/build_datetime'
|
4
4
|
|
5
5
|
# Our "vague date" class, which can represent a single date or a date range.
|
6
6
|
class Daterange
|
@@ -188,7 +188,10 @@ class Daterange
|
|
188
188
|
j1 = j2 = Date.new(parts[0], parts[1], parts[2]).jd
|
189
189
|
end
|
190
190
|
|
191
|
-
[j1
|
191
|
+
[j1, j2].collect do |jd|
|
192
|
+
date = Date.jd(jd) # Julian date number to Ruby Date
|
193
|
+
Ourdate.build_datetime(date.year, date.month, date.day)
|
194
|
+
end
|
192
195
|
rescue
|
193
196
|
nil
|
194
197
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
require 'active_support/time'
|
3
|
+
|
4
|
+
class Ourdate
|
5
|
+
# Construct a daylight saving time safe datetime, with arguments
|
6
|
+
#--
|
7
|
+
# FIXME: Note that the arguments should be numbers, not strings -- it works
|
8
|
+
# with strings arguments only after the 1970 epoch; before, it returns nil.
|
9
|
+
#++
|
10
|
+
def self.build_datetime(year, month = 1, day = 1, hour = 0, min = 0, sec = 0, usec = 0)
|
11
|
+
return nil if year.nil?
|
12
|
+
|
13
|
+
if ActiveRecord::Base.default_timezone == :local
|
14
|
+
# Time.local_time(year, month, day, hour, min, sec, usec).to_datetime
|
15
|
+
# Behave like oracle_adapter.rb
|
16
|
+
seconds = sec + Rational(usec, 10**6)
|
17
|
+
time_array = [year, month, day, hour, min, seconds]
|
18
|
+
begin
|
19
|
+
#--
|
20
|
+
# TODO: Fails unit tests unless we .to_datetime here
|
21
|
+
# but the risk is we lose the usec component unnecesssarily.
|
22
|
+
# Investigate removing .to_datetime below.
|
23
|
+
#++
|
24
|
+
Time.send(ActiveRecord::Base.default_timezone, *time_array).to_datetime
|
25
|
+
rescue
|
26
|
+
zone_offset = ActiveRecord::Base.default_timezone == :local ? DateTime.now.offset : 0
|
27
|
+
# Append zero calendar reform start to account for dates skipped by calendar reform
|
28
|
+
DateTime.new(*time_array[0..5] << zone_offset << 0) rescue nil
|
29
|
+
end
|
30
|
+
else
|
31
|
+
# Only supports fake GMT time -- needs improvement
|
32
|
+
# Maybe use Time.zone.local or Time.local_time(year, month, day)
|
33
|
+
Time.utc(year, month, day, hour, min, sec, usec).to_datetime
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/ndr_support/ourdate.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'active_record'
|
2
2
|
require 'active_support/time'
|
3
|
+
require 'ndr_support/ourdate/build_datetime'
|
3
4
|
require 'ndr_support/date_and_time_extensions'
|
4
5
|
require 'ndr_support/daterange'
|
5
6
|
|
@@ -25,38 +26,6 @@ class Ourdate
|
|
25
26
|
end
|
26
27
|
end
|
27
28
|
|
28
|
-
# Construct a daylight saving time safe datetime, with arguments
|
29
|
-
#--
|
30
|
-
# FIXME: Note that the arguments should be numbers, not strings -- it works
|
31
|
-
# with strings arguments only after the 1970 epoch; before, it returns nil.
|
32
|
-
#++
|
33
|
-
def self.build_datetime(year, month = 1, day = 1, hour = 0, min = 0, sec = 0, usec = 0)
|
34
|
-
return nil if year.nil?
|
35
|
-
|
36
|
-
if ActiveRecord::Base.default_timezone == :local
|
37
|
-
# Time.local_time(year, month, day, hour, min, sec, usec).to_datetime
|
38
|
-
# Behave like oracle_adapter.rb
|
39
|
-
seconds = sec + Rational(usec, 10**6)
|
40
|
-
time_array = [year, month, day, hour, min, seconds]
|
41
|
-
begin
|
42
|
-
#--
|
43
|
-
# TODO: Fails unit tests unless we .to_datetime here
|
44
|
-
# but the risk is we lose the usec component unnecesssarily.
|
45
|
-
# Investigate removing .to_datetime below.
|
46
|
-
#++
|
47
|
-
Time.send(ActiveRecord::Base.default_timezone, *time_array).to_datetime
|
48
|
-
rescue
|
49
|
-
zone_offset = ActiveRecord::Base.default_timezone == :local ? DateTime.now.offset : 0
|
50
|
-
# Append zero calendar reform start to account for dates skipped by calendar reform
|
51
|
-
DateTime.new(*time_array[0..5] << zone_offset << 0) rescue nil
|
52
|
-
end
|
53
|
-
else
|
54
|
-
# Only supports fake GMT time -- needs improvement
|
55
|
-
# Maybe use Time.zone.local or Time.local_time(year, month, day)
|
56
|
-
Time.utc(year, month, day, hour, min, sec, usec).to_datetime
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
29
|
def initialize(x = nil)
|
61
30
|
if x.is_a?(Date)
|
62
31
|
@thedate = x
|
data/lib/ndr_support/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ndr_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.8.
|
4
|
+
version: 5.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NCRS Development Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -249,12 +249,12 @@ files:
|
|
249
249
|
- lib/ndr_support/daterange.rb
|
250
250
|
- lib/ndr_support/hash.rb
|
251
251
|
- lib/ndr_support/integer/calculations.rb
|
252
|
-
- lib/ndr_support/integer/julian_date_conversions.rb
|
253
252
|
- lib/ndr_support/integer/rounding.rb
|
254
253
|
- lib/ndr_support/integer/working_days.rb
|
255
254
|
- lib/ndr_support/nil.rb
|
256
255
|
- lib/ndr_support/obfuscator.rb
|
257
256
|
- lib/ndr_support/ourdate.rb
|
257
|
+
- lib/ndr_support/ourdate/build_datetime.rb
|
258
258
|
- lib/ndr_support/ourtime.rb
|
259
259
|
- lib/ndr_support/password.rb
|
260
260
|
- lib/ndr_support/password/constants.rb
|
@@ -316,7 +316,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
316
316
|
- !ruby/object:Gem::Version
|
317
317
|
version: '0'
|
318
318
|
requirements: []
|
319
|
-
rubygems_version: 3.
|
319
|
+
rubygems_version: 3.1.6
|
320
320
|
signing_key:
|
321
321
|
specification_version: 4
|
322
322
|
summary: NDR Support library
|