et-orbi 1.2.8 → 1.2.10

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: 149c5b95f1f67702640cb1b202d768bec7e215bb6335f9ec73f247d65edb6298
4
- data.tar.gz: 6e559b757f53c60daef8be08c9c9af0d48378e203cc3d7cbb5582b4bb758b051
3
+ metadata.gz: 12da146d4d75a3fb39edea976685cd6117958484f265f6a7eff404a4f9726224
4
+ data.tar.gz: b772af0f0e49c040ef15e3b2d23a61b28b540cc7d69f3e338f6fca719057c94b
5
5
  SHA512:
6
- metadata.gz: 58d548986bc13f557c88cb862f52c10faa9211489a0daa0de7691eea5473905554a3257166d689c128d1a14d97c000713de17ee5064c557eaf601f718ee26b2b
7
- data.tar.gz: 4919107bc2091bb8be87af751e86f75bf99f5f29fae457f12321b85bfc38ec38ad47a533e4a706f27bbd409b0bd92e479c9f44b9b01f5dc2adc18a839b2232cc
6
+ metadata.gz: 56992ab662dc9ddcfbf6975332f7e44ee4a0c8eb5a90d519dbc8cd79da0847626f90451c21d5080eee440ba65c93cb16a939d20bb94b442eb5b05ce86cd6eea3
7
+ data.tar.gz: 6c04743276d444c5d7e38a852c385d643af9e8969f03de382c38661bf61ee6f692a1bebadb7c1700318aa99392c4292b592dbcbc27557cbc15d71e203a47e31a
data/CHANGELOG.md CHANGED
@@ -2,7 +2,17 @@
2
2
  # CHANGELOG.md
3
3
 
4
4
 
5
- ## et-orbi 1.2.8 released 2024-03-11 (13 years)
5
+ ## et-orbi 1.2.10 released 2024-03-22
6
+
7
+ - Refine #rweek computation, aim more at noon instead of midnight, gh-38
8
+
9
+
10
+ ## et-orbi 1.2.9 released 2024-03-13
11
+
12
+ - Refine #rweek computation, aim at noon instead of midnight, gh-38
13
+
14
+
15
+ ## et-orbi 1.2.8 released 2024-03-11 (13 ans)
6
16
 
7
17
  - Cache the @ref time used in the #rweek and #rday computation
8
18
 
data/CREDITS.md CHANGED
@@ -1,13 +1,15 @@
1
1
 
2
2
  # et-orbi credits
3
3
 
4
+ * Benjami Darcet https://github.com/bdarcet https://github.com/floraison/fugit/issues/67 gh-38
5
+ * https://github.com/franckduche https://github.com/floraison/fugit/issues/67 gh-38
4
6
  * Igor Viktor https://github.com/gogainda gh-34
5
7
  * phibid, for https://github.com/floraison/fugit/issues/67
6
8
  * Peter Goldstein, https://github.com/petergoldstein GHA 3.3 j9.3, gh-32
7
- * harsha-flipp (https://github.com/harsha-flipp) https://github.com/floraison/fugit/issues/63
8
- * adank92 (https://github.com/adank92) https://github.com/ondrejbartas/sidekiq-cron/issues/276 gh-28
9
- * Stan Hu (https://github.com/stanhu) Chronic toubles, gh-24, gh-26, etc
10
- * d-m-u (https://github.com/d-m-u) EoTime#==(Time), gh-20, gh-7
9
+ * harsha-flipp https://github.com/harsha-flipp https://github.com/floraison/fugit/issues/63
10
+ * adank92 https://github.com/adank92 https://github.com/ondrejbartas/sidekiq-cron/issues/276 gh-28
11
+ * Stan Hu https://github.com/stanhu Chronic toubles, gh-24, gh-26, etc
12
+ * d-m-u https://github.com/d-m-u EoTime#==(Time), gh-20, gh-7
11
13
  * Vais Salikhov (https://github.com/vais) missing US timezone aliases, gh-18 gh-19
12
14
  * Wenhui Wang https://github.com/w11th .parse vs Chronic+ActiveSupport, fugit 11
13
15
  * Marcel https://github.com/MTRNord "Mitteleuropaeische Sommerzeit", gh-15
data/lib/et-orbi/time.rb CHANGED
@@ -88,22 +88,34 @@ module EtOrbi
88
88
  (defined?(TZInfo::Data) ? '' : "\nand adding gem 'tzinfo-data'")
89
89
  ) unless @zone
90
90
 
91
+ touch
92
+ end
93
+
94
+ # Nullify the "caches" used by #to_time, #rweek, and others
95
+ #
96
+ def touch
97
+
91
98
  @time = nil
92
- # cache for #to_time result
99
+ @ref = nil
93
100
  end
94
101
 
95
102
  def seconds=(f)
96
103
 
97
- @time = nil
98
104
  @seconds = f
105
+
106
+ touch
107
+
108
+ f
99
109
  end
100
110
 
101
111
  def zone=(z)
102
112
 
103
- @time = nil
104
- @ref = nil
105
113
 
106
114
  @zone = self.class.get_tzone(zone || :current)
115
+
116
+ touch
117
+
118
+ @zone
107
119
  end
108
120
 
109
121
  # Returns true if this EoTime instance corresponds to 2 different UTC
@@ -232,8 +244,8 @@ module EtOrbi
232
244
  def <=(o); @seconds <= _to_f(o); end
233
245
  def <=>(o); @seconds <=> _to_f(o); end
234
246
 
235
- def add(t); @time = nil; @seconds += t.to_f; self; end
236
- def subtract(t); @time = nil; @seconds -= t.to_f; self; end
247
+ def add(t); @seconds += t.to_f; touch; self; end
248
+ def subtract(t); @seconds -= t.to_f; touch; self; end
237
249
 
238
250
  def +(t); inc(t, 1); end
239
251
  def -(t); inc(t, -1); end
@@ -303,19 +315,24 @@ module EtOrbi
303
315
 
304
316
  def inc(t, dir=1)
305
317
 
306
- case t
307
- when Numeric
308
- nt = self.dup
309
- nt.seconds += dir * t.to_f
310
- nt
311
- when ::Time, ::EtOrbi::EoTime
312
- fail ArgumentError.new(
313
- "Cannot add #{t.class} to EoTime") if dir > 0
314
- @seconds + dir * t.to_f
315
- else
316
- fail ArgumentError.new(
317
- "Cannot call add or subtract #{t.class} to EoTime instance")
318
- end
318
+ r =
319
+ case t
320
+ when Numeric
321
+ nt = self.dup
322
+ nt.seconds += dir * t.to_f
323
+ nt
324
+ when ::Time, ::EtOrbi::EoTime
325
+ fail ArgumentError.new(
326
+ "Cannot add #{t.class} to EoTime") if dir > 0
327
+ @seconds + dir * t.to_f
328
+ else
329
+ fail ArgumentError.new(
330
+ "Cannot call add or subtract #{t.class} to EoTime instance")
331
+ end
332
+
333
+ touch
334
+
335
+ r
319
336
  end
320
337
 
321
338
  def localtime(zone=nil)
@@ -336,18 +353,20 @@ module EtOrbi
336
353
  #
337
354
  def rweek
338
355
 
339
- @ref ||= EtOrbi.make_time('2019-01-01 00:00:00', @zone)
356
+ @ref ||= EtOrbi.make_time('2019-01-01 12:00:00', @zone)
357
+ noon = EtOrbi.make_time(strftime('%F 12:00:00'), @zone)
340
358
 
341
- ((self - @ref) / WEEK_S).floor + 1
359
+ ((noon - @ref) / WEEK_S).floor + 1
342
360
  end
343
361
 
344
362
  # "reference week", used in fugit for cron modulo notation
345
363
  #
346
364
  def rday
347
365
 
348
- @ref ||= EtOrbi.make_time('2019-01-01 00:00:00', @zone)
366
+ @ref ||= EtOrbi.make_time('2019-01-01 12:00:00', @zone)
367
+ noon = EtOrbi.make_time(strftime('%F 12:00:00'), @zone)
349
368
 
350
- ((self - @ref) / DAY_S).floor + 1
369
+ ((noon - @ref) / DAY_S).floor + 1
351
370
  end
352
371
 
353
372
  def reach(points)
@@ -382,6 +401,11 @@ module EtOrbi
382
401
  t
383
402
  end
384
403
 
404
+ def clone
405
+
406
+ EtOrbi::EoTime.new(@seconds, @zone)
407
+ end
408
+
385
409
  protected
386
410
 
387
411
  # Returns a Ruby Time instance.
data/lib/et-orbi.rb CHANGED
@@ -13,6 +13,6 @@ require 'et-orbi/zone'
13
13
 
14
14
  module EtOrbi
15
15
 
16
- VERSION = '1.2.8'
16
+ VERSION = '1.2.10'
17
17
  end
18
18
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: et-orbi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.8
4
+ version: 1.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Mettraux
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-11 00:00:00.000000000 Z
11
+ date: 2024-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tzinfo
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  requirements: []
100
- rubygems_version: 3.2.33
100
+ rubygems_version: 3.4.10
101
101
  signing_key:
102
102
  specification_version: 4
103
103
  summary: time with zones