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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3f90df368cddc8835eb228b45b2e03088caf7ff494c6dd71538a255ed81ee17
4
- data.tar.gz: b7efe09d5283db3ee78934b727893817c772bb1564c02eaa453e216d562e23b1
3
+ metadata.gz: 528b4fe69aceac0e252cab457de3d2b01436ef6f188308858e014a4ceee43299
4
+ data.tar.gz: c15d6e7487920ccf74d4ff1711cbc062346de5c6457c7d9552b216536428e5e3
5
5
  SHA512:
6
- metadata.gz: 3b5dd0eeb3aec3bf88b4bc71620a661f3fe8a76eb9deef2c6dd8ec8e4d42faf9328f4934531fc0b36e65947f62d7163e4d0165324c8f17df8a1dfa042d942dc1
7
- data.tar.gz: ba3cad435e924c140fd528a1cee8bd2e1aa8ccc2431f852d093e01bf7d16e8db21ceecdde3bd3cc53aed7465ffcaa0568f67b0226cbce1f957ced9d35a221ba8
6
+ metadata.gz: 5759f651f4ddea307afb890f7163972da66d3704b8d904b77ff60a88ffd77704419a1347ee96425c3fe5a60f1c4e558cc69c9411630d6e6121e54ad03148b842
7
+ data.tar.gz: 5837a1948066929be0486edc36f3571bffefb7b086f88a7d2f9c1bb047a3df1970221d97e683a3dcb89517f17822d60967f2f25381b85a18384e09d444860b7f
data/CHANGELOG.md CHANGED
@@ -1,6 +1,10 @@
1
1
  ## [Unreleased]
2
2
  *no unreleased changes*
3
3
 
4
+ ## 5.8.3 / 2021-11-25
5
+ ## Fixed
6
+ * remove circular dependencies between Ourdate and Daterange
7
+
4
8
  ## 5.8.2 / 2021-10-11
5
9
  ## Fixed
6
10
  * fix issue with blank date causing error for dateranges
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: ollietulloch
26
- safe_revision: de292b8dd286a0164a67cda49bbbbc8ba75409cc
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: ollietulloch
78
- safe_revision: fc52184297e0a3bcd52b119e2e0add952c8ab7f1
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: ollietulloch
110
- safe_revision: '09b3f97fb4c1afc88d0d070c39796b1f60c39d25'
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: ollietulloch
170
- safe_revision: de292b8dd286a0164a67cda49bbbbc8ba75409cc
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/integer/julian_date_conversions'
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.jd_to_datetime, j2.jd_to_datetime]
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
@@ -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
@@ -3,5 +3,5 @@
3
3
  # This defines the NdrSupport version. If you change it, rebuild and commit the gem.
4
4
  # Use "rake build" to build the gem, see rake -T for all bundler rake tasks.
5
5
  module NdrSupport
6
- VERSION = '5.8.2'
6
+ VERSION = '5.8.3'
7
7
  end
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.2
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-10-11 00:00:00.000000000 Z
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.0.3
319
+ rubygems_version: 3.1.6
320
320
  signing_key:
321
321
  specification_version: 4
322
322
  summary: NDR Support library
@@ -1,12 +0,0 @@
1
- # Extend Integer for use in our Daterange class
2
- class Integer
3
- # Julian date number to Ruby Date
4
- def jd_to_date
5
- Date.jd(self)
6
- end
7
-
8
- def jd_to_datetime
9
- date = jd_to_date
10
- Ourdate.build_datetime(date.year, date.month, date.day)
11
- end
12
- end