summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/period.rb
diff options
context:
space:
mode:
authorBen Sanders <ben@sanders.life>2026-08-02 09:49:25 -0400
committerBen Sanders <ben@sanders.life>2026-08-02 09:49:25 -0400
commitb41479c91e6685511c1f8ba8586106b322073b62 (patch)
treec9f1345999d754ae0a533849966427e792d9e68d /vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/period.rb
parentcfaceeb9a6d1295f5754be211858155cd309acc2 (diff)
added statscounter code
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/period.rb')
-rw-r--r--vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/period.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/period.rb b/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/period.rb
new file mode 100644
index 0000000..a0359de
--- /dev/null
+++ b/vendor/bundle/ruby/3.4.0/gems/logger-1.7.0/lib/logger/period.rb
@@ -0,0 +1,47 @@
+# frozen_string_literal: true
+
+class Logger
+ module Period
+ module_function
+
+ SiD = 24 * 60 * 60
+
+ def next_rotate_time(now, shift_age)
+ case shift_age
+ when 'daily', :daily
+ t = Time.mktime(now.year, now.month, now.mday) + SiD
+ when 'weekly', :weekly
+ t = Time.mktime(now.year, now.month, now.mday) + SiD * (7 - now.wday)
+ when 'monthly', :monthly
+ t = Time.mktime(now.year, now.month, 1) + SiD * 32
+ return Time.mktime(t.year, t.month, 1)
+ when 'now', 'everytime', :now, :everytime
+ return now
+ else
+ raise ArgumentError, "invalid :shift_age #{shift_age.inspect}, should be daily, weekly, monthly, or everytime"
+ end
+ if t.hour.nonzero? or t.min.nonzero? or t.sec.nonzero?
+ hour = t.hour
+ t = Time.mktime(t.year, t.month, t.mday)
+ t += SiD if hour > 12
+ end
+ t
+ end
+
+ def previous_period_end(now, shift_age)
+ case shift_age
+ when 'daily', :daily
+ t = Time.mktime(now.year, now.month, now.mday) - SiD / 2
+ when 'weekly', :weekly
+ t = Time.mktime(now.year, now.month, now.mday) - (SiD * now.wday + SiD / 2)
+ when 'monthly', :monthly
+ t = Time.mktime(now.year, now.month, 1) - SiD / 2
+ when 'now', 'everytime', :now, :everytime
+ return now
+ else
+ raise ArgumentError, "invalid :shift_age #{shift_age.inspect}, should be daily, weekly, monthly, or everytime"
+ end
+ Time.mktime(t.year, t.month, t.mday, 23, 59, 59)
+ end
+ end
+end