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.
Files changed (2) hide show
  1. data/lib/run_every.rb +61 -0
  2. metadata +56 -0
@@ -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
+