Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rubygem-timers for openSUSE:Factory checked in at 2022-10-12 18:25:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-timers (Old) and /work/SRC/openSUSE:Factory/.rubygem-timers.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-timers" Wed Oct 12 18:25:13 2022 rev:8 rq:1010064 version:4.3.4 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-timers/rubygem-timers.changes 2021-07-02 13:28:07.264456129 +0200 +++ /work/SRC/openSUSE:Factory/.rubygem-timers.new.2275/rubygem-timers.changes 2022-10-12 18:27:01.717998544 +0200 @@ -1,0 +2,6 @@ +Mon Oct 10 13:25:06 UTC 2022 - Stephan Kulow <[email protected]> + +updated to version 4.3.4 + no changelog found + +------------------------------------------------------------------- Old: ---- timers-4.3.3.gem New: ---- timers-4.3.4.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-timers.spec ++++++ --- /var/tmp/diff_new_pack.00CH12/_old 2022-10-12 18:27:02.213999636 +0200 +++ /var/tmp/diff_new_pack.00CH12/_new 2022-10-12 18:27:02.221999653 +0200 @@ -1,7 +1,7 @@ # # spec file for package rubygem-timers # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ # Name: rubygem-timers -Version: 4.3.3 +Version: 4.3.4 Release: 0 %define mod_name timers %define mod_full_name %{mod_name}-%{version} @@ -48,6 +48,7 @@ %install %gem_install \ + --doc-files="license.md readme.md" \ -f %gem_packages ++++++ timers-4.3.3.gem -> timers-4.3.4.gem ++++++ Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/checksums.yaml.gz.sig new/checksums.yaml.gz.sig --- old/checksums.yaml.gz.sig 1970-01-01 01:00:00.000000000 +0100 +++ new/checksums.yaml.gz.sig 2022-09-02 11:15:53.000000000 +0200 @@ -0,0 +1,4 @@ +@BC?S???rr?H?rW ?U??|)Ivx??o??jx<Z!?h??????! +??????Jc???b?1??Y???(??????.W????Li?????"^?'???&??.????y?2Sk\??7??.q(IK ??(????:?s???A?(L??????f8)??(0?[? +R??Y??s????`?L[?D*t??R}MG???????l?J???????Tu???mx??G?? +?W8??? u??4??n_?D|N???[????m?1??l??U?a?Y?N.??' 0fTtH??_r?????i?KW?^???????N?R?o?2??~e$'??=??%???@?? H??5??#? ????M???. [???v3~?1':????? \ No newline at end of file Binary files old/data.tar.gz.sig and new/data.tar.gz.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/timers/events.rb new/lib/timers/events.rb --- old/lib/timers/events.rb 2021-02-13 07:15:03.000000000 +0100 +++ new/lib/timers/events.rb 2022-09-02 11:15:53.000000000 +0200 @@ -1,24 +1,12 @@ # frozen_string_literal: true -# Copyright, 2018, by Samuel G. D. Williams. <http://www.codeotaku.com> -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. +# Released under the MIT License. +# Copyright, 2014-2022, by Samuel Williams. +# Copyright, 2014-2016, by Tony Arcieri. +# Copyright, 2014, by Lavir the Whiolet. +# Copyright, 2015, by Utenmiki. +# Copyright, 2015, by Donovan Keme. +# Copyright, 2021, by Wander Hillen. require_relative "timer" require_relative "priority_heap" @@ -69,6 +57,8 @@ # Add an event at the given time. def schedule(time, callback) + flush! + handle = Handle.new(time.to_f, callback) @queue << handle @@ -111,5 +101,11 @@ @sequence.push(handle) end end + + def flush! + while @queue.last&.cancelled? + @queue.pop + end + end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/timers/group.rb new/lib/timers/group.rb --- old/lib/timers/group.rb 2021-02-13 07:15:03.000000000 +0100 +++ new/lib/timers/group.rb 2022-09-02 11:15:53.000000000 +0200 @@ -1,24 +1,10 @@ # frozen_string_literal: true -# Copyright, 2018, by Samuel G. D. Williams. <http://www.codeotaku.com> -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. +# Released under the MIT License. +# Copyright, 2014-2022, by Samuel Williams. +# Copyright, 2014-2016, by Tony Arcieri. +# Copyright, 2015, by Donovan Keme. +# Copyright, 2015, by Tommy Ong Gia Phu. require "set" require "forwardable" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/timers/interval.rb new/lib/timers/interval.rb --- old/lib/timers/interval.rb 2021-02-13 07:15:03.000000000 +0100 +++ new/lib/timers/interval.rb 2022-09-02 11:15:53.000000000 +0200 @@ -1,24 +1,7 @@ # frozen_string_literal: true -# Copyright, 2018, by Samuel G. D. Williams. <http://www.codeotaku.com> -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. +# Released under the MIT License. +# Copyright, 2018-2022, by Samuel Williams. module Timers # A collection of timers which may fire at different times diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/timers/priority_heap.rb new/lib/timers/priority_heap.rb --- old/lib/timers/priority_heap.rb 2021-02-13 07:15:03.000000000 +0100 +++ new/lib/timers/priority_heap.rb 2022-09-02 11:15:53.000000000 +0200 @@ -1,25 +1,8 @@ # frozen_string_literal: true +# Released under the MIT License. # Copyright, 2021, by Wander Hillen. -# Copyright, 2021, by Samuel G. D. Williams. <http://www.codeotaku.com> -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. +# Copyright, 2021-2022, by Samuel Williams. module Timers # A priority queue implementation using a standard binary minheap. It uses straight comparison @@ -87,30 +70,19 @@ return self end - private - - # Validate the heap invariant. - def validate!(index = 0) - if value = @contents[index] - left_index = index*2 + 1 - if left_value = @contents[left_index] - unless value < left_value - raise "Invalid left index from #{index}!" - end - - validate!(left_index) - end - - right_index = left_index + 1 - if right_value = @contents[right_index] - unless value < right_value - raise "Invalid right index from #{index}!" - end - - validate!(right_index) - end - end + # Empties out the heap, discarding all elements + def clear! + @contents = [] + end + + # Validate the heap invariant. Every element except the root must not be smaller than + # its parent element. Note that it MAY be equal. + def valid? + # notice we skip index 0 on purpose, because it has no parent + (1..(@contents.size - 1)).all? { |e| @contents[e] >= @contents[(e - 1) / 2] } end + + private def swap(i, j) @contents[i], @contents[j] = @contents[j], @contents[i] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/timers/timer.rb new/lib/timers/timer.rb --- old/lib/timers/timer.rb 2021-02-13 07:15:03.000000000 +0100 +++ new/lib/timers/timer.rb 2022-09-02 11:15:53.000000000 +0200 @@ -1,24 +1,11 @@ # frozen_string_literal: true -# Copyright, 2018, by Samuel G. D. Williams. <http://www.codeotaku.com> -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. +# Released under the MIT License. +# Copyright, 2014-2022, by Samuel Williams. +# Copyright, 2014-2017, by Tony Arcieri. +# Copyright, 2014, by Utenmiki. +# Copyright, 2014, by Lin Jen-Shin. +# Copyright, 2017, by V??t Ondruch. module Timers # An individual timer set to fire a given proc at a given time. A timer is diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/timers/version.rb new/lib/timers/version.rb --- old/lib/timers/version.rb 2021-02-13 07:15:03.000000000 +0100 +++ new/lib/timers/version.rb 2022-09-02 11:15:53.000000000 +0200 @@ -1,25 +1,10 @@ # frozen_string_literal: true -# Copyright, 2018, by Samuel G. D. Williams. <http://www.codeotaku.com> -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. +# Released under the MIT License. +# Copyright, 2012-2016, by Tony Arcieri. +# Copyright, 2014-2022, by Samuel Williams. +# Copyright, 2015, by Donovan Keme. module Timers - VERSION = "4.3.3" + VERSION = "4.3.4" end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/timers/wait.rb new/lib/timers/wait.rb --- old/lib/timers/wait.rb 2021-02-13 07:15:03.000000000 +0100 +++ new/lib/timers/wait.rb 2022-09-02 11:15:53.000000000 +0200 @@ -1,24 +1,10 @@ # frozen_string_literal: true -# Copyright, 2018, by Samuel G. D. Williams. <http://www.codeotaku.com> -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. +# Released under the MIT License. +# Copyright, 2014-2022, by Samuel Williams. +# Copyright, 2014-2016, by Tony Arcieri. +# Copyright, 2015, by Utenmiki. +# Copyright, 2015, by Donovan Keme. require_relative "interval" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/timers.rb new/lib/timers.rb --- old/lib/timers.rb 2021-02-13 07:15:03.000000000 +0100 +++ new/lib/timers.rb 2022-09-02 11:15:53.000000000 +0200 @@ -1,24 +1,19 @@ # frozen_string_literal: true -# Copyright, 2020, by Samuel G. D. Williams. <http://www.codeotaku.com> -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. +# Released under the MIT License. +# Copyright, 2012-2016, by Tony Arcieri. +# Copyright, 2012, by Ryan LeCompte. +# Copyright, 2012, by Nicholas Evans. +# Copyright, 2012, by Dimitrij Denissenko. +# Copyright, 2013, by Chuck Remes. +# Copyright, 2013, by Ron Evans. +# Copyright, 2013, by Sean Gregory. +# Copyright, 2013, by Utenmiki. +# Copyright, 2013, by Jeremy Hinegardner. +# Copyright, 2014, by Larry Lv. +# Copyright, 2014, by Bruno Enten. +# Copyright, 2014-2022, by Samuel Williams. +# Copyright, 2014, by Mike Bourgeous. require_relative "timers/version" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/license.md new/license.md --- old/license.md 1970-01-01 01:00:00.000000000 +0100 +++ new/license.md 2022-09-02 11:15:53.000000000 +0200 @@ -0,0 +1,48 @@ +# MIT License + +Copyright, 2012-2017, by Tony Arcieri. +Copyright, 2012, by Ryan LeCompte. +Copyright, 2012, by Jesse Cooke. +Copyright, 2012, by Nicholas Evans. +Copyright, 2012, by Dimitrij Denissenko. +Copyright, 2013, by Chuck Remes. +Copyright, 2013, by Ron Evans. +Copyright, 2013, by Sean Gregory. +Copyright, 2013-2015, by Utenmiki. +Copyright, 2013, by Jeremy Hinegardner. +Copyright, 2014, by Larry Lv. +Copyright, 2014, by Bruno Enten. +Copyright, 2014-2022, by Samuel Williams. +Copyright, 2014, by Mike Bourgeous. +Copyright, 2014, by Klaus Trainer. +Copyright, 2014, by Lin Jen-Shin. +Copyright, 2014, by Lavir the Whiolet. +Copyright, 2015-2016, by Donovan Keme. +Copyright, 2015, by Tommy Ong Gia Phu. +Copyright, 2015, by Will Jessop. +Copyright, 2016, by Ryunosuke SATO. +Copyright, 2016, by Atul Bhosale. +Copyright, 2016, by Feram. +Copyright, 2017, by V??t Ondruch. +Copyright, 2017-2020, by Olle Jonsson. +Copyright, 2020, by Tim Smith. +Copyright, 2021, by Wander Hillen. +Copyright, 2022, by Yoshiki Takagi. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2021-02-13 07:15:03.000000000 +0100 +++ new/metadata 2022-09-02 11:15:53.000000000 +0200 @@ -1,15 +1,73 @@ --- !ruby/object:Gem::Specification name: timers version: !ruby/object:Gem::Version - version: 4.3.3 + version: 4.3.4 platform: ruby authors: -- Samuel Williams - Tony Arcieri +- Samuel Williams +- "//de" +- Wander Hillen +- Jeremy Hinegardner +- skinnyjames +- Chuck Remes +- utenmiki +- Olle Jonsson +- deadprogrammer +- takiy33 +- Larry Lv +- Lin Jen-Shin +- Ryunosuke SATO +- Tommy Ong Gia Phu +- Atul Bhosale +- Bruno Enten +- Dimitrij Denissenko +- Donovan Keme +- Feram +- Jesse Cooke +- Klaus Trainer +- Lavir the Whiolet +- Mike Bourgeous +- Ryan LeCompte +- Tim Smith +- V??t Ondruch +- Will Jessop +- Yoshiki Takagi +- nicholas a. evans +- tommyogp autorequire: bindir: bin -cert_chain: [] -date: 2021-02-13 00:00:00.000000000 Z +cert_chain: +- | + -----BEGIN CERTIFICATE----- + MIIE2DCCA0CgAwIBAgIBATANBgkqhkiG9w0BAQsFADBhMRgwFgYDVQQDDA9zYW11 + ZWwud2lsbGlhbXMxHTAbBgoJkiaJk/IsZAEZFg1vcmlvbnRyYW5zZmVyMRIwEAYK + CZImiZPyLGQBGRYCY28xEjAQBgoJkiaJk/IsZAEZFgJuejAeFw0yMjA4MDYwNDUz + MjRaFw0zMjA4MDMwNDUzMjRaMGExGDAWBgNVBAMMD3NhbXVlbC53aWxsaWFtczEd + MBsGCgmSJomT8ixkARkWDW9yaW9udHJhbnNmZXIxEjAQBgoJkiaJk/IsZAEZFgJj + bzESMBAGCgmSJomT8ixkARkWAm56MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIB + igKCAYEAomvSopQXQ24+9DBB6I6jxRI2auu3VVb4nOjmmHq7XWM4u3HL+pni63X2 + 9qZdoq9xt7H+RPbwL28LDpDNflYQXoOhoVhQ37Pjn9YDjl8/4/9xa9+NUpl9XDIW + sGkaOY0eqsQm1pEWkHJr3zn/fxoKPZPfaJOglovdxf7dgsHz67Xgd/ka+Wo1YqoE + e5AUKRwUuvaUaumAKgPH+4E4oiLXI4T1Ff5Q7xxv6yXvHuYtlMHhYfgNn8iiW8WN + XibYXPNP7NtieSQqwR/xM6IRSoyXKuS+ZNGDPUUGk8RoiV/xvVN4LrVm9upSc0ss + RZ6qwOQmXCo/lLcDUxJAgG95cPw//sI00tZan75VgsGzSWAOdjQpFM0l4dxvKwHn + tUeT3ZsAgt0JnGqNm2Bkz81kG4A2hSyFZTFA8vZGhp+hz+8Q573tAR89y9YJBdYM + zp0FM4zwMNEUwgfRzv1tEVVUEXmoFCyhzonUUw4nE4CFu/sE3ffhjKcXcY//qiSW + xm4erY3XAgMBAAGjgZowgZcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O + BBYEFO9t7XWuFf2SKLmuijgqR4sGDlRsMC4GA1UdEQQnMCWBI3NhbXVlbC53aWxs + aWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MC4GA1UdEgQnMCWBI3NhbXVlbC53aWxs + aWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MA0GCSqGSIb3DQEBCwUAA4IBgQB5sxkE + cBsSYwK6fYpM+hA5B5yZY2+L0Z+27jF1pWGgbhPH8/FjjBLVn+VFok3CDpRqwXCl + xCO40JEkKdznNy2avOMra6PFiQyOE74kCtv7P+Fdc+FhgqI5lMon6tt9rNeXmnW/ + c1NaMRdxy999hmRGzUSFjozcCwxpy/LwabxtdXwXgSay4mQ32EDjqR1TixS1+smp + 8C/NCWgpIfzpHGJsjvmH2wAfKtTTqB9CVKLCWEnCHyCaRVuKkrKjqhYCdmMBqCws + JkxfQWC+jBVeG9ZtPhQgZpfhvh+6hMhraUYRQ6XGyvBqEUe+yo6DKIT3MtGE2+CP + eX9i9ZWBydWb8/rvmwmX2kkcBbX0hZS1rcR593hGc61JR6lvkGYQ2MYskBveyaxt + Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8 + voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg= + -----END CERTIFICATE----- +date: 2022-09-02 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: bundler @@ -40,19 +98,47 @@ - !ruby/object:Gem::Version version: '0' - !ruby/object:Gem::Dependency - name: rspec + name: bake-test + requirement: !ruby/object:Gem::Requirement + requirements: + - - "~>" + - !ruby/object:Gem::Version + version: '0.1' + type: :development + prerelease: false + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - "~>" + - !ruby/object:Gem::Version + version: '0.1' +- !ruby/object:Gem::Dependency + name: bake-test-external + requirement: !ruby/object:Gem::Requirement + requirements: + - - "~>" + - !ruby/object:Gem::Version + version: '0.2' + type: :development + prerelease: false + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - "~>" + - !ruby/object:Gem::Version + version: '0.2' +- !ruby/object:Gem::Dependency + name: sus requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version - version: '3.0' + version: '0.13' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version - version: '3.0' + version: '0.13' description: email: executables: [] @@ -67,6 +153,8 @@ - lib/timers/timer.rb - lib/timers/version.rb - lib/timers/wait.rb +- license.md +- readme.md homepage: https://github.com/socketry/timers licenses: - MIT @@ -86,7 +174,7 @@ - !ruby/object:Gem::Version version: '0' requirements: [] -rubygems_version: 3.1.2 +rubygems_version: 3.3.7 signing_key: specification_version: 4 summary: Pure Ruby one-shot and periodic timers. Binary files old/metadata.gz.sig and new/metadata.gz.sig differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readme.md new/readme.md --- old/readme.md 1970-01-01 01:00:00.000000000 +0100 +++ new/readme.md 2022-09-02 11:15:53.000000000 +0200 @@ -0,0 +1,110 @@ +# Timers + +Collections of one-shot and periodic timers, intended for use with event loops such as [async](https://github.com/socketry/async). + +[](https://github.com/socketry/timers/actions?workflow=Test) + +## Installation + +Add this line to your application's Gemfile: + +``` ruby +gem 'timers' +``` + +And then execute: + + $ bundle + +Or install it yourself as: + + $ gem install timers + +## Usage + +Create a new timer group with `Timers::Group.new`: + +``` ruby +require 'timers' + +timers = Timers::Group.new +``` + +Schedule a proc to run after 5 seconds with `Timers::Group#after`: + +``` ruby +five_second_timer = timers.after(5) { puts "Take five" } +``` + +The `five_second_timer` variable is now bound to a Timers::Timer object. To +cancel a timer, use `Timers::Timer#cancel` + +Once you've scheduled a timer, you can wait until the next timer fires with `Timers::Group#wait`: + +``` ruby +# Waits 5 seconds +timers.wait + +# The script will now print "Take five" +``` + +You can schedule a block to run periodically with `Timers::Group#every`: + +``` ruby +every_five_seconds = timers.every(5) { puts "Another 5 seconds" } + +loop { timers.wait } +``` + +You can also schedule a block to run immediately and periodically with `Timers::Group#now_and_every`: + +``` ruby +now_and_every_five_seconds = timers.now_and_every(5) { puts "Now and in another 5 seconds" } + +loop { timers.wait } +``` + +If you'd like another method to do the waiting for you, e.g. `Kernel.select`, +you can use `Timers::Group#wait_interval` to obtain the amount of time to wait. When +a timeout is encountered, you can fire all pending timers with `Timers::Group#fire`: + +``` ruby +loop do + interval = timers.wait_interval + ready_readers, ready_writers = select readers, writers, nil, interval + + if ready_readers || ready_writers + # Handle IO + ... + else + # Timeout! + timers.fire + end +end +``` + +You can also pause and continue individual timers, or all timers: + +``` ruby +paused_timer = timers.every(5) { puts "I was paused" } + +paused_timer.pause +10.times { timers.wait } # will not fire paused timer + +paused_timer.resume +10.times { timers.wait } # will fire timer + +timers.pause +10.times { timers.wait } # will not fire any timers + +timers.resume +10.times { timers.wait } # will fire all timers +``` + +## Contributing + +1. Fork it +2. Create your feature branch (`git checkout -b my-new-feature`) +3. Commit your changes (`git commit -am 'Add some feature'`) +4. Push to the branch (`git push origin my-new-feature`) +5. Create new Pull Request
