et-orbi 1.2.8 → 1.2.9

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: 149c5b95f1f67702640cb1b202d768bec7e215bb6335f9ec73f247d65edb6298
4
- data.tar.gz: 6e559b757f53c60daef8be08c9c9af0d48378e203cc3d7cbb5582b4bb758b051
3
+ metadata.gz: 435f9eb2e9b27822b9ee161fbe2449375cb710e1e01b8f3313c61983424aba85
4
+ data.tar.gz: a72603974625eb4e8c49e89c3a317002ea8661adbaa461c2d143450bd8b9c40a
5
5
  SHA512:
6
- metadata.gz: 58d548986bc13f557c88cb862f52c10faa9211489a0daa0de7691eea5473905554a3257166d689c128d1a14d97c000713de17ee5064c557eaf601f718ee26b2b
7
- data.tar.gz: 4919107bc2091bb8be87af751e86f75bf99f5f29fae457f12321b85bfc38ec38ad47a533e4a706f27bbd409b0bd92e479c9f44b9b01f5dc2adc18a839b2232cc
6
+ metadata.gz: b45a1917c605b29254c97d5ab27d1b5e894cb2e9ed01b27594a19b8a52fc16c18fe6f59d56a362cedc0e0d3131278ec2d0d288427a132ce2b5152a7b0404ab22
7
+ data.tar.gz: dd28bbd9b3fe1ad3feb0088284a01f909453afd1ae56ba3c910215d85d9af793fdf3042adc27fa1789bc646412abb2643f0543c1b7bb2fa8e02aa50a57771f33
data/CHANGELOG.md CHANGED
@@ -2,7 +2,12 @@
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.9 released 2024-03-13
6
+
7
+ - Refine #rweek computation, aim at noon instead of midnight, gh-38
8
+
9
+
10
+ ## et-orbi 1.2.8 released 2024-03-11 (13 ans)
6
11
 
7
12
  - Cache the @ref time used in the #rweek and #rday computation
8
13
 
data/CREDITS.md CHANGED
@@ -1,6 +1,8 @@
1
1
 
2
2
  # et-orbi credits
3
3
 
4
+ * Benjami Darcet @bdarcet https://github.com/floraison/fugit/issues/67 gh-38
5
+ * @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
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,7 +353,7 @@ 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)
340
357
 
341
358
  ((self - @ref) / WEEK_S).floor + 1
342
359
  end
@@ -382,6 +399,11 @@ module EtOrbi
382
399
  t
383
400
  end
384
401
 
402
+ def clone
403
+
404
+ EtOrbi::EoTime.new(@seconds, @zone)
405
+ end
406
+
385
407
  protected
386
408
 
387
409
  # 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.9'
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.9
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-13 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