timers 4.1.1 → 4.3.1

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.
metadata CHANGED
@@ -1,94 +1,76 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timers
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 4.3.1
5
5
  platform: ruby
6
6
  authors:
7
+ - Samuel Williams
7
8
  - Tony Arcieri
8
- autorequire:
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-08-21 00:00:00.000000000 Z
12
+ date: 2020-09-03 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
- version_requirements: !ruby/object:Gem::Requirement
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
15
17
  requirements:
16
18
  - - ">="
17
19
  - !ruby/object:Gem::Version
18
20
  version: '0'
19
- name: hitimes
20
- type: :runtime
21
+ type: :development
21
22
  prerelease: false
22
- requirement: !ruby/object:Gem::Requirement
23
+ version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - ">="
25
26
  - !ruby/object:Gem::Version
26
27
  version: '0'
27
28
  - !ruby/object:Gem::Dependency
28
- version_requirements: !ruby/object:Gem::Requirement
29
+ name: covered
30
+ requirement: !ruby/object:Gem::Requirement
29
31
  requirements:
30
32
  - - ">="
31
33
  - !ruby/object:Gem::Version
32
34
  version: '0'
33
- name: rake
34
35
  type: :development
35
36
  prerelease: false
36
- requirement: !ruby/object:Gem::Requirement
37
+ version_requirements: !ruby/object:Gem::Requirement
37
38
  requirements:
38
39
  - - ">="
39
40
  - !ruby/object:Gem::Version
40
41
  version: '0'
41
42
  - !ruby/object:Gem::Dependency
42
- version_requirements: !ruby/object:Gem::Requirement
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
43
45
  requirements:
44
46
  - - "~>"
45
47
  - !ruby/object:Gem::Version
46
- version: 3.0.0
47
- name: rspec
48
+ version: '3.0'
48
49
  type: :development
49
50
  prerelease: false
50
- requirement: !ruby/object:Gem::Requirement
51
+ version_requirements: !ruby/object:Gem::Requirement
51
52
  requirements:
52
53
  - - "~>"
53
54
  - !ruby/object:Gem::Version
54
- version: 3.0.0
55
- description: Pure Ruby one-shot and periodic timers
55
+ version: '3.0'
56
+ description:
56
57
  email:
57
- - tony.arcieri@gmail.com
58
58
  executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - ".coveralls.yml"
63
- - ".gitignore"
64
- - ".rspec"
65
- - ".travis.yml"
66
- - AUTHORS.md
67
- - CHANGES.md
68
- - Gemfile
69
- - LICENSE
70
- - README.md
71
- - Rakefile
72
62
  - lib/timers.rb
73
63
  - lib/timers/events.rb
74
64
  - lib/timers/group.rb
65
+ - lib/timers/interval.rb
75
66
  - lib/timers/timer.rb
76
67
  - lib/timers/version.rb
77
68
  - lib/timers/wait.rb
78
- - spec/cancel_spec.rb
79
- - spec/events_spec.rb
80
- - spec/every_spec.rb
81
- - spec/group_spec.rb
82
- - spec/performance_spec.rb
83
- - spec/spec_helper.rb
84
- - spec/strict_spec.rb
85
- - spec/timeout_spec.rb
86
- - timers.gemspec
87
- homepage: https://github.com/celluloid/timers
69
+ homepage: https://github.com/socketry/timers
88
70
  licenses:
89
71
  - MIT
90
72
  metadata: {}
91
- post_install_message:
73
+ post_install_message:
92
74
  rdoc_options: []
93
75
  require_paths:
94
76
  - lib
@@ -96,25 +78,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
78
  requirements:
97
79
  - - ">="
98
80
  - !ruby/object:Gem::Version
99
- version: '0'
81
+ version: '2.5'
100
82
  required_rubygems_version: !ruby/object:Gem::Requirement
101
83
  requirements:
102
84
  - - ">="
103
85
  - !ruby/object:Gem::Version
104
86
  version: '0'
105
87
  requirements: []
106
- rubyforge_project:
107
- rubygems_version: 2.4.8
108
- signing_key:
88
+ rubygems_version: 3.1.2
89
+ signing_key:
109
90
  specification_version: 4
110
- summary: Schedule procs to run after a certain time, or at periodic intervals, using
111
- any API that accepts a timeout
112
- test_files:
113
- - spec/cancel_spec.rb
114
- - spec/events_spec.rb
115
- - spec/every_spec.rb
116
- - spec/group_spec.rb
117
- - spec/performance_spec.rb
118
- - spec/spec_helper.rb
119
- - spec/strict_spec.rb
120
- - spec/timeout_spec.rb
91
+ summary: Pure Ruby one-shot and periodic timers.
92
+ test_files: []
@@ -1 +0,0 @@
1
- service-name: travis-pro
data/.gitignore DELETED
@@ -1,17 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
data/.rspec DELETED
@@ -1,5 +0,0 @@
1
- --color
2
- --format documentation
3
- --backtrace
4
- --order random
5
- --warnings
@@ -1,18 +0,0 @@
1
- rvm:
2
- - 1.9.3
3
- - 2.0.0
4
- - 2.1.2
5
- - ruby-head
6
- - jruby
7
- - jruby-head
8
- - rbx-2
9
-
10
- matrix:
11
- fast_finish: true
12
- allow_failures:
13
- - rvm: ruby-head
14
- - rvm: jruby-head
15
- - rvm: rbx-2
16
-
17
- notifications:
18
- irc: "irc.freenode.org#celluloid"
data/AUTHORS.md DELETED
@@ -1,15 +0,0 @@
1
- # The Celluloid timers gem is beamed directly to you from the minds of...
2
-
3
- - Tony Arcieri <bascule@gmail.com>
4
- - Jeremy Hinegardner
5
- - Sean Gregory
6
- - Chuck Remes
7
- - Utenmiki
8
- - Ron Evans
9
- - Larry Lv
10
- - Bruno Enten
11
- - Jesse Cooke
12
- - Nicholas Evans
13
- - Dimitrij Denissenko
14
- - Ryan LeCompte
15
- - Samuel G. D. Williams
data/CHANGES.md DELETED
@@ -1,54 +0,0 @@
1
- 4.1.1 (2015-08-21)
2
- ------------------
3
- * Remove `RubyProf` from Gemfile and a test, due to it providing no substantial benefit while increasing problems building bundles under Rubinius.
4
-
5
- 4.1.0 (2015-08-16)
6
- ------------------
7
- * Addition of `now_and_every` method; fires block immediately, then sets recurring timer.
8
- * Includes `now_and_after` method; does the same as above for one-shot timers: essentially a "two-shot" timer.
9
-
10
- 4.0.1 (2014-09-10)
11
- ------------------
12
- * Memory leak fixes
13
- * mathn fix for those crazy enough to use it
14
-
15
- 4.0.0 (2014-07-27)
16
- ------------------
17
- * Replace Timers::Timeout with Timers::Wait
18
- * Timers::Group#wait_interval now returns nil when no timers, a postive or
19
- negative interval which if positive is the amount of time required to wait
20
- and if negative, how far in the past the latest timer should have fired
21
- * Performance improvements
22
-
23
- 3.0.1 (2014-06-27)
24
- ------------------
25
- * Require 'set' automatically
26
-
27
- 3.0.0 (2014-06-14)
28
- ------------------
29
- * Refactor `Timers` class into `Timers::Group`
30
- * Add `Timers::Timeout` class for implementing timeouts
31
- * Fix timer fudging
32
- * Update to RSpec 3
33
-
34
- 2.0.0 (2013-12-30)
35
- ------------------
36
- * Switch to Hitimes for high precision monotonic counters
37
- * Removed Timers#time. Replaced with Timers#current_offset which provides a
38
- monotonic time counter.
39
-
40
- 1.1.0
41
- -----
42
- * Timers#after_milliseconds and #after_ms for waiting in milliseconds
43
-
44
- 1.0.2
45
- -----
46
- * Handle overdue timers correctly
47
-
48
- 1.0.1
49
- -----
50
- * Explicitly require Forwardable from stdlib
51
-
52
- 1.0.0
53
- -----
54
- * Initial release
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'coveralls', :require => false
4
-
5
- # Specify your gem's dependencies in timers.gemspec
6
- gemspec
data/LICENSE DELETED
@@ -1,23 +0,0 @@
1
- Copyright (c) 2012-14 The Celluloid Timers Developers: given in the file
2
- AUTHORS.md at https://github.com/celluloid/timers/blob/master/AUTHORS.md
3
-
4
- MIT License
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining
7
- a copy of this software and associated documentation files (the
8
- "Software"), to deal in the Software without restriction, including
9
- without limitation the rights to use, copy, modify, merge, publish,
10
- distribute, sublicense, and/or sell copies of the Software, and to
11
- permit persons to whom the Software is furnished to do so, subject to
12
- the following conditions:
13
-
14
- The above copyright notice and this permission notice shall be
15
- included in all copies or substantial portions of the Software.
16
-
17
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md DELETED
@@ -1,103 +0,0 @@
1
- Timers
2
- ======
3
- [![Gem Version](https://badge.fury.io/rb/timers.png)](http://rubygems.org/gems/timers)
4
- [![Build Status](https://secure.travis-ci.org/celluloid/timers.png?branch=master)](http://travis-ci.org/celluloid/timers)
5
- [![Code Climate](https://codeclimate.com/github/celluloid/timers.png)](https://codeclimate.com/github/celluloid/timers)
6
- [![Coverage Status](https://coveralls.io/repos/celluloid/timers/badge.png?branch=master)](https://coveralls.io/r/celluloid/timers)
7
-
8
- Ruby timer collections. Schedule several procs to fire after configurable delays
9
- or at periodic intervals.
10
-
11
- This gem is especially useful when you are faced with an API that accepts a
12
- single timeout but you want to run multiple timers on top of it. An example of
13
- such a library is [nio4r](https://github.com/celluloid/nio4r), a cross-platform
14
- Ruby library for using system calls like epoll and kqueue.
15
-
16
- Usage
17
- -----
18
-
19
- Create a new timer group with `Timers::Group.new`:
20
-
21
- ```ruby
22
- require 'timers'
23
-
24
- timers = Timers::Group.new
25
- ```
26
-
27
- Schedule a proc to run after 5 seconds with `Timers::Group#after`:
28
-
29
- ```ruby
30
- five_second_timer = timers.after(5) { puts "Take five" }
31
- ```
32
-
33
- The `five_second_timer` variable is now bound to a Timers::Timer object. To
34
- cancel a timer, use `Timers::Timer#cancel`
35
-
36
- Once you've scheduled a timer, you can wait until the next timer fires with `Timers::Group#wait`:
37
-
38
- ```ruby
39
- # Waits 5 seconds
40
- timers.wait
41
-
42
- # The script will now print "Take five"
43
- ```
44
-
45
- You can schedule a block to run periodically with `Timers::Group#every`:
46
-
47
- ```ruby
48
- every_five_seconds = timers.every(5) { puts "Another 5 seconds" }
49
-
50
- loop { timers.wait }
51
- ```
52
-
53
- You can also schedule a block to run immediately and periodically with `Timers::Group#now_and_every`:
54
- ```ruby
55
- now_and_every_five_seconds = timers.now_and_every(5) { puts "Now and in another 5 seconds" }
56
-
57
- loop { timers.wait }
58
- ```
59
-
60
- If you'd like another method to do the waiting for you, e.g. `Kernel.select`,
61
- you can use `Timers::Group#wait_interval` to obtain the amount of time to wait. When
62
- a timeout is encountered, you can fire all pending timers with `Timers::Group#fire`:
63
-
64
- ```ruby
65
- loop do
66
- interval = timers.wait_interval
67
- ready_readers, ready_writers = select readers, writers, nil, interval
68
-
69
- if ready_readers || ready_writers
70
- # Handle IO
71
- ...
72
- else
73
- # Timeout!
74
- timers.fire
75
- end
76
- end
77
- ```
78
-
79
- You can also pause and continue individual timers, or all timers:
80
-
81
- ```ruby
82
- paused_timer = timers.every(5) { puts "I was paused" }
83
-
84
- paused_timer.pause
85
- 10.times { timers.wait } # will not fire paused timer
86
-
87
- paused_timer.resume
88
- 10.times { timers.wait } # will fire timer
89
-
90
- timers.pause
91
- 10.times { timers.wait } # will not fire any timers
92
-
93
- timers.resume
94
- 10.times { timers.wait } # will fire all timers
95
- ```
96
-
97
- License
98
- -------
99
-
100
- Copyright (c) 2014 Celluloid timers project developers (given in the file
101
- AUTHORS.md).
102
-
103
- Distributed under the MIT License. See LICENSE file for further details.
data/Rakefile DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env rake
2
- require "bundler/gem_tasks"
3
- require 'rspec/core/rake_task'
4
-
5
- RSpec::Core::RakeTask.new
6
-
7
- task :default => :spec
@@ -1,46 +0,0 @@
1
-
2
- require 'spec_helper'
3
-
4
- RSpec.describe Timers::Group do
5
- it "should be able to cancel twice" do
6
- fired = false
7
-
8
- timer = subject.after(0.1) { fired = true }
9
-
10
- 2.times do
11
- timer.cancel
12
- subject.wait
13
- end
14
-
15
- expect(fired).to be false
16
- end
17
-
18
- it "should be possble to reset after cancel" do
19
- fired = false
20
-
21
- timer = subject.after(0.1) { fired = true }
22
- timer.cancel
23
-
24
- subject.wait
25
-
26
- timer.reset
27
-
28
- subject.wait
29
-
30
- expect(fired).to be true
31
- end
32
-
33
- it "should cancel and remove one shot timers after they fire" do
34
- x = 0
35
-
36
- Timers::Wait.for(2) do |remaining|
37
- timer = subject.every(0.2) { x += 1 }
38
- subject.after(0.1) { timer.cancel }
39
-
40
- subject.wait
41
- end
42
-
43
- expect(subject.timers).to be_empty
44
- expect(x).to be == 0
45
- end
46
- end