iers 0.2.0 → 0.3.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4132b4709810d88306f0ea6bde33b1664d1fdbfeef985e0191cba65c98c01f8a
4
- data.tar.gz: 5e3bef64e668f1320bc9c3876e571bf4bb452ea2df52cd09539303bafbf03ea0
3
+ metadata.gz: 1d3826650e5fd3bcabe029c7a531bd3abd53213b06df36135c254875b8d81db9
4
+ data.tar.gz: b3f444b9b216fefa81776e8ea8d11fd872ce153baea1ae780055c66d0431be64
5
5
  SHA512:
6
- metadata.gz: c2bd5f8b1d3a088bc9aa8d822013a9c04570cea94c6036f080eb4d34d8ad53ac0346e6547092f5ce95fe61f95df6de32006e59371894e3b77768565be15354a1
7
- data.tar.gz: 8b32049edecc0955026664f02cbf89a1af9d518050374538cbf1b1c3b08d572509b971d522a1d368490d6d07bcbd90bb807bd9fd5c4223d074431a60583244f5
6
+ metadata.gz: db698e6202ba685d7a3c0552c97f2dbe0cce5a76e572c985937a52e824b8375b7d6adc4a823a5e7e10ca73f4d4cfc7ec3d3d5a1639ff8af20d88ddf168180a71
7
+ data.tar.gz: e2646d5321100190836f0c8bbd2978a4a352ece96250b549e4dfe351217b7478dbdac9fa98cba51996099b456b4ef46524ac8daca0360b9dd9c9bc3785c23318
data/CHANGELOG.md CHANGED
@@ -1,5 +1,82 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.1 - 2026-09-13
4
+
5
+ ### Fixed
6
+
7
+ - Reading a date too large or too small for a Float no longer writes to the
8
+ caller's stderr. `Kernel#Float` warns "Integer out of Float range" for such
9
+ a magnitude, and for a Rational whose numerator or denominator has one, so a
10
+ query far outside the data announced itself before being refused. An Integer
11
+ or a Rational is measured and converted directly now, which is quiet, while
12
+ everything else still goes through `Kernel#Float`, which is what refuses a
13
+ String or a Symbol. The values are unchanged: a magnitude past the range of
14
+ a Float was an Infinity before and is one now.
15
+
16
+ ## 0.3.0 - 2026-09-06
17
+
18
+ ### Fixed
19
+
20
+ - `DeltaT.at` answers every date in 1972 again. The switch from the Espenak &
21
+ Meeus polynomial to measured data was pinned to 1972-01-01, the start of the
22
+ modern UTC era, but the bundled EOP series only starts at 1973-01-02, so the
23
+ 367 days in between belonged to neither source and raised `OutOfRangeError`.
24
+
25
+ ### Changed
26
+
27
+ - `DeltaT.at` picks its source by asking what the loaded data actually covers
28
+ rather than by calendar date. The EOP series is used wherever it reaches, the
29
+ polynomial covers the rest of 1800–1986, and only a date outside both raises.
30
+ A configured or extended series therefore moves the seam with it, and no
31
+ fixed date can drift away from the data behind it again.
32
+
33
+ Two consequences for a series that does not span the query. A date past the
34
+ end of a short series now returns a polynomial estimate if it falls before
35
+ 1986, where it used to raise; this cannot arise with the bundled data, which
36
+ ends decades beyond 1986. And a date outside both sources now raises with
37
+ a message naming the polynomial range and the series range, instead of the
38
+ EOP range alone, which read as if the caller had asked for something out of
39
+ range when the polynomial covered it.
40
+
41
+ Where the polynomial and the series meet in the bundled data they differ by
42
+ about 61 ms, well inside the polynomial's own error in that era.
43
+
44
+ - Pointing the gem at a different data file now takes effect. `finals_path`,
45
+ `leap_second_path` and `cache_dir` memoised their parse on first read and
46
+ never dropped it, so setting any of them after a lookup kept serving the
47
+ previous file until `IERS.reset!`. Each now invalidates just the data it
48
+ governs; `interpolation`, `sources` and `download_timeout` leave the parse
49
+ in place, since they do not change which file is read, and a `Configuration`
50
+ the gem is not reading through governs nothing.
51
+
52
+ - `Data.clear_cache!` drops the parse along with the files it deletes. It
53
+ removed the cached files and left their contents in memory, so the process
54
+ kept serving a deleted cache while `Data.status` already reported `:bundled`.
55
+
56
+ - `Data.update!` drops the parse for each source as soon as it downloads it.
57
+ It replaced the files on disk but left the old contents in memory, so a
58
+ process that had already read them carried on with the pre-download data.
59
+
60
+ - `OutOfRangeError` raised by `DeltaT.at` no longer carries an
61
+ `available_range`. What the gem can answer is two disjoint spans, and naming
62
+ one of them in a field called available range is the same thing that made the
63
+ old message misleading. The message names both spans; `requested_mjd` is
64
+ unchanged.
65
+
66
+ - `Data.clear_loaded!` raises `ConfigurationError` for a source it does not
67
+ recognise, rather than clearing nothing and reporting success.
68
+
69
+ - `DeltaT.at` consults the EOP series for every query, so a finals file that
70
+ fails to parse now raises `ParseError` even for a date the polynomial owns
71
+ outright, where it used to answer without reading the file. A file that
72
+ parses to no rows is a series covering nothing and still falls back to the
73
+ polynomial. A corrupt data file is worth surfacing whichever query reaches
74
+ it.
75
+
76
+ - Refreshed the bundled `finals2000A.all` and `Leap_Second.dat` snapshots from
77
+ IERS. Final values now extend through 2026-08-27 (previously 2026-06-25) and
78
+ predictions through 2027-09-04 (previously 2027-07-03).
79
+
3
80
  ## 0.2.0 - 2026-07-25
4
81
 
5
82
  ### Added
data/README.md CHANGED
@@ -167,9 +167,10 @@ entry.observed? # => true
167
167
 
168
168
  ### Delta T
169
169
 
170
- Compute Delta T (TT − UT1). From 1972 onward the value is derived from IERS
171
- data; before 1972 (back to 1800) it uses Espenak & Meeus polynomial
172
- approximations:
170
+ Compute Delta T (TT − UT1). Wherever the loaded EOP series reaches, the value is
171
+ derived from IERS data. Outside it, Espenak & Meeus polynomial approximations
172
+ cover 1800 to 1986. The bundled series starts at MJD 41684 (1973-01-02), so
173
+ earlier dates are estimated; `measured?` and `estimated?` say which you got:
173
174
 
174
175
  ```ruby
175
176
  entry = IERS::DeltaT.at(Time.utc(2020, 6, 15))
data/Rakefile CHANGED
@@ -31,7 +31,6 @@ namespace :data do
31
31
  abort "IERS data update failed"
32
32
  end
33
33
 
34
- IERS::Data.clear_loaded!
35
34
  IERS::Data.ensure_fresh!(coverage_days_ahead: 90)
36
35
  IERS::Data.leap_second_entries
37
36
 
data/data/Leap_Second.dat CHANGED
@@ -1,10 +1,10 @@
1
1
  # Value of TAI-UTC in second valid beetween the initial value until
2
2
  # the epoch given on the next line. The last line reads that NO
3
3
  # leap second was introduced since the corresponding date
4
- # Updated through IERS Bulletin 71 issued in January 2026
4
+ # Updated through IERS Bulletin 72 issued in July 2026
5
5
  #
6
6
  #
7
- # File expires on 28 December 2026
7
+ # File expires on 28 June 2027
8
8
  #
9
9
  #
10
10
  # MJD Date TAI-UTC (s)