et-orbi 1.2.7 → 1.2.9

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: 23ff138170f965f0a2dc35d38aaa08123ddfd97176d76f5e1b2136306eec812e
4
- data.tar.gz: 193d8bca6b8cfb34f023aadb504e127fd3f187eb64c10f546327510c8f487e04
3
+ metadata.gz: 435f9eb2e9b27822b9ee161fbe2449375cb710e1e01b8f3313c61983424aba85
4
+ data.tar.gz: a72603974625eb4e8c49e89c3a317002ea8661adbaa461c2d143450bd8b9c40a
5
5
  SHA512:
6
- metadata.gz: 9a5747b65189567c49a9dda0936bac7d947deaa8a5067ba4d311d1c80032722baae682acfc111488d8c6b3139fa41238dfec645279983449312c6f5aa8881eb9
7
- data.tar.gz: 2173668af72a6c2aff4e992201d5c74ffe5f87023f6e52c4c42389c28bb8cab4a231c55142bbc9c12513173260c80bf3b372c0ccad555900f6a7efad01e35482
6
+ metadata.gz: b45a1917c605b29254c97d5ab27d1b5e894cb2e9ed01b27594a19b8a52fc16c18fe6f59d56a362cedc0e0d3131278ec2d0d288427a132ce2b5152a7b0404ab22
7
+ data.tar.gz: dd28bbd9b3fe1ad3feb0088284a01f909453afd1ae56ba3c910215d85d9af793fdf3042adc27fa1789bc646412abb2643f0543c1b7bb2fa8e02aa50a57771f33
data/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
  # CHANGELOG.md
3
3
 
4
4
 
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)
11
+
12
+ - Cache the @ref time used in the #rweek and #rday computation
13
+
14
+
5
15
  ## et-orbi 1.2.7 released 2022-03-09
6
16
 
7
17
  - Fix the wday_in_month computation for floraison/fugit#67
data/CREDITS.md CHANGED
@@ -1,6 +1,9 @@
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
6
+ * Igor Viktor https://github.com/gogainda gh-34
4
7
  * phibid, for https://github.com/floraison/fugit/issues/67
5
8
  * Peter Goldstein, https://github.com/petergoldstein GHA 3.3 j9.3, gh-32
6
9
  * harsha-flipp (https://github.com/harsha-flipp) https://github.com/floraison/fugit/issues/63
data/LICENSE.txt CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- Copyright (c) 2017-2022, John Mettraux, jmettraux+flor@gmail.com
2
+ Copyright (c) 2017-2024, John Mettraux, jmettraux+flor@gmail.com
3
3
 
4
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  of this software and associated documentation files (the "Software"), to deal
data/Makefile CHANGED
@@ -1,10 +1,10 @@
1
1
 
2
2
  ## gem tasks ##
3
3
 
4
- NAME = \
5
- $(shell ruby -e "s = eval(File.read(Dir['*.gemspec'][0])); puts s.name")
6
- VERSION = \
7
- $(shell ruby -e "s = eval(File.read(Dir['*.gemspec'][0])); puts s.version")
4
+ NAME != \
5
+ ruby -e "s = eval(File.read(Dir['*.gemspec'][0])); puts s.name"
6
+ VERSION != \
7
+ ruby -e "s = eval(File.read(Dir['*.gemspec'][0])); puts s.version"
8
8
 
9
9
  count_lines:
10
10
  find lib -name "*.rb" | xargs cat | ruby -e "p STDIN.readlines.count { |l| l = l.strip; l[0, 1] != '#' && l != '' }"
data/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
 
4
4
  [![tests](https://github.com/floraison/et-orbi/workflows/test/badge.svg)](https://github.com/floraison/et-orbi/actions)
5
5
  [![Gem Version](https://badge.fury.io/rb/et-orbi.svg)](http://badge.fury.io/rb/et-orbi)
6
- [![Join the chat at https://gitter.im/floraison/fugit](https://badges.gitter.im/floraison/fugit.svg)](https://gitter.im/floraison/fugit?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
7
6
 
8
7
  Time zones for [fugit](https://github.com/floraison/fugit) and for [rufus-scheduler](https://github.com/jmettraux/rufus-scheduler). Urbi et Orbi.
9
8
 
data/lib/et-orbi/time.rb CHANGED
@@ -88,20 +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
113
+
104
114
  @zone = self.class.get_tzone(zone || :current)
115
+
116
+ touch
117
+
118
+ @zone
105
119
  end
106
120
 
107
121
  # Returns true if this EoTime instance corresponds to 2 different UTC
@@ -230,8 +244,8 @@ module EtOrbi
230
244
  def <=(o); @seconds <= _to_f(o); end
231
245
  def <=>(o); @seconds <=> _to_f(o); end
232
246
 
233
- def add(t); @time = nil; @seconds += t.to_f; self; end
234
- 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
235
249
 
236
250
  def +(t); inc(t, 1); end
237
251
  def -(t); inc(t, -1); end
@@ -301,19 +315,24 @@ module EtOrbi
301
315
 
302
316
  def inc(t, dir=1)
303
317
 
304
- case t
305
- when Numeric
306
- nt = self.dup
307
- nt.seconds += dir * t.to_f
308
- nt
309
- when ::Time, ::EtOrbi::EoTime
310
- fail ArgumentError.new(
311
- "Cannot add #{t.class} to EoTime") if dir > 0
312
- @seconds + dir * t.to_f
313
- else
314
- fail ArgumentError.new(
315
- "Cannot call add or subtract #{t.class} to EoTime instance")
316
- 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
317
336
  end
318
337
 
319
338
  def localtime(zone=nil)
@@ -330,16 +349,22 @@ module EtOrbi
330
349
  - count_weeks(EtOrbi.make_time(strftime('%F 12:00:00 %/Z')) , 1) ]
331
350
  end
332
351
 
352
+ # "reference week", used in fugit for cron modulo notation
353
+ #
333
354
  def rweek
334
355
 
335
- ((self - EtOrbi.make_time('2019-01-01 00:00:00', @zone)) / WEEK_S)
336
- .floor + 1
356
+ @ref ||= EtOrbi.make_time('2019-01-01 12:00:00', @zone)
357
+
358
+ ((self - @ref) / WEEK_S).floor + 1
337
359
  end
338
360
 
361
+ # "reference week", used in fugit for cron modulo notation
362
+ #
339
363
  def rday
340
364
 
341
- ((self - EtOrbi.make_time('2019-01-01 00:00:00', @zone)) / DAY_S)
342
- .floor + 1
365
+ @ref ||= EtOrbi.make_time('2019-01-01 00:00:00', @zone)
366
+
367
+ ((self - @ref) / DAY_S).floor + 1
343
368
  end
344
369
 
345
370
  def reach(points)
@@ -374,6 +399,11 @@ module EtOrbi
374
399
  t
375
400
  end
376
401
 
402
+ def clone
403
+
404
+ EtOrbi::EoTime.new(@seconds, @zone)
405
+ end
406
+
377
407
  protected
378
408
 
379
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.7'
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.7
4
+ version: 1.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Mettraux
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-09 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
@@ -82,7 +82,7 @@ metadata:
82
82
  bug_tracker_uri: https://github.com/floraison/et-orbi/issues
83
83
  homepage_uri: https://github.com/floraison/et-orbi
84
84
  source_code_uri: https://github.com/floraison/et-orbi
85
- post_install_message:
85
+ post_install_message:
86
86
  rdoc_options: []
87
87
  require_paths:
88
88
  - lib
@@ -97,8 +97,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  requirements: []
100
- rubygems_version: 3.1.2
101
- signing_key:
100
+ rubygems_version: 3.4.10
101
+ signing_key:
102
102
  specification_version: 4
103
103
  summary: time with zones
104
104
  test_files: []