run_every 0.1.0
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.
- data/lib/run_every.rb +61 -0
- metadata +56 -0
data/lib/run_every.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# file: run_every.rb
|
4
|
+
|
5
|
+
require 'xthreads'
|
6
|
+
|
7
|
+
class RunEvery
|
8
|
+
|
9
|
+
def initialize(opt={}, &blk)
|
10
|
+
if opt[:minutes] then
|
11
|
+
interval = opt[:minutes] * 60
|
12
|
+
elsif opt[:seconds] then
|
13
|
+
interval = opt[:seconds]
|
14
|
+
end
|
15
|
+
start_timer(interval, &blk)
|
16
|
+
end
|
17
|
+
|
18
|
+
class TimeUnit
|
19
|
+
def initialize(interval)
|
20
|
+
@interval = interval
|
21
|
+
end
|
22
|
+
|
23
|
+
def minutes
|
24
|
+
puts 'mins'
|
25
|
+
start_timer(@interval * 60, &blk)
|
26
|
+
end
|
27
|
+
|
28
|
+
def seconds(&blk)
|
29
|
+
puts 'seconds'
|
30
|
+
start_timer(@interval, &blk)
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def start_timer(interval, &blk)
|
36
|
+
XThreads.new.create_loop('every', interval: interval, &blk).start
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
self.instance_eval do
|
41
|
+
def one() TimeUnit.new 1 end
|
42
|
+
def two() TimeUnit.new 2 end
|
43
|
+
def three() TimeUnit.new 3 end
|
44
|
+
def four() TimeUnit.new 4 end
|
45
|
+
def five() TimeUnit.new 5 end
|
46
|
+
def ten() TimeUnit.new 10 end
|
47
|
+
def fifteen() TimeUnit.new 15 end
|
48
|
+
def twenty() TimeUnit.new 20 end
|
49
|
+
def twentyfive() TimeUnit.new 20 end
|
50
|
+
def thirty() TimeUnit.new 30 end
|
51
|
+
def forty() TimeUnit.new 40 end
|
52
|
+
def fifty() TimeUnit.new 50 end
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def start_timer(interval, &blk)
|
58
|
+
XThreads.new.create_loop('every', interval: interval, &blk).start
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
metadata
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: run_every
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.0
|
6
|
+
platform: ruby
|
7
|
+
authors: []
|
8
|
+
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-04-03 00:00:00 +01:00
|
14
|
+
default_executable:
|
15
|
+
dependencies: []
|
16
|
+
|
17
|
+
description:
|
18
|
+
email:
|
19
|
+
executables: []
|
20
|
+
|
21
|
+
extensions: []
|
22
|
+
|
23
|
+
extra_rdoc_files: []
|
24
|
+
|
25
|
+
files:
|
26
|
+
- lib/run_every.rb
|
27
|
+
has_rdoc: true
|
28
|
+
homepage:
|
29
|
+
licenses: []
|
30
|
+
|
31
|
+
post_install_message:
|
32
|
+
rdoc_options: []
|
33
|
+
|
34
|
+
require_paths:
|
35
|
+
- lib
|
36
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: "0"
|
42
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: "0"
|
48
|
+
requirements: []
|
49
|
+
|
50
|
+
rubyforge_project:
|
51
|
+
rubygems_version: 1.5.2
|
52
|
+
signing_key:
|
53
|
+
specification_version: 3
|
54
|
+
summary: run_every
|
55
|
+
test_files: []
|
56
|
+
|