polling 0.1.1 → 0.1.2
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/README.md +22 -18
- data/lib/polling.rb +21 -0
- data/lib/polling/engine.rb +13 -0
- data/lib/polling/version.rb +1 -1
- data/test/async_run.rb +11 -0
- data/test/run.rb +1 -2
- data/test/test_engine.rb +11 -0
- metadata +4 -2
data/README.md
CHANGED
@@ -67,6 +67,27 @@ result
|
|
67
67
|
exec sleep 2
|
68
68
|
sleep 2.998732089996338seconds (until 2013-03-24 23:38:50 +0900)
|
69
69
|
|
70
|
+
Async run
|
71
|
+
|
72
|
+
Polling.async_run 5 do
|
73
|
+
puts "exec sleep 2"
|
74
|
+
sleep 2
|
75
|
+
puts Time.now
|
76
|
+
end
|
77
|
+
|
78
|
+
async run result
|
79
|
+
|
80
|
+
start: 2013-03-31 07:17:58 +0900
|
81
|
+
exec sleep 2
|
82
|
+
2013-03-31 07:18:00 +0900
|
83
|
+
sleep 2.998924seconds (until 2013-03-31 07:18:03 +0900)
|
84
|
+
exec sleep 2
|
85
|
+
2013-03-31 07:18:05 +0900
|
86
|
+
sleep 2.999263seconds (until 2013-03-31 07:18:08 +0900)
|
87
|
+
exec sleep 2
|
88
|
+
2013-03-31 07:18:10 +0900
|
89
|
+
sleep 2.998978seconds (until 2013-03-31 07:18:13 +0900)
|
90
|
+
|
70
91
|
debug
|
71
92
|
|
72
93
|
require 'polling'
|
@@ -90,31 +111,14 @@ Time which can be set up
|
|
90
111
|
- "5s" or like string type [s|m|h|d]
|
91
112
|
- [0,10,20,30,40,50] array class
|
92
113
|
|
93
|
-
Support legacy interface.
|
94
114
|
It starts at per minute 0 second.
|
95
115
|
|
96
116
|
time = [0,10,20,30,40,50]
|
97
|
-
Polling::run
|
117
|
+
Polling::run time, debug=true do
|
98
118
|
puts "test"
|
99
119
|
sleep 2
|
100
120
|
end
|
101
121
|
|
102
|
-
The multiple of 60 is set up.
|
103
|
-
|
104
|
-
time = [300]
|
105
|
-
Polling::run(time) do
|
106
|
-
puts "hoge"
|
107
|
-
sleep 2
|
108
|
-
end
|
109
|
-
|
110
|
-
Please set a vlue that is divisible by 60.
|
111
|
-
|
112
|
-
time = ["5s"] #or 5. support string is s,m,h,d.
|
113
|
-
Polling::run(time) do
|
114
|
-
puts "test"
|
115
|
-
sleep 2
|
116
|
-
end
|
117
|
-
|
118
122
|
## Copyright
|
119
123
|
|
120
124
|
Copyright (c) 2012, hiro-su All rights reserved.
|
data/lib/polling.rb
CHANGED
@@ -30,6 +30,9 @@ module Polling
|
|
30
30
|
end
|
31
31
|
|
32
32
|
interval = Validate.value interval
|
33
|
+
unless @debug
|
34
|
+
e.__send__(:start_print, e.stime)
|
35
|
+
end
|
33
36
|
|
34
37
|
case interval
|
35
38
|
when Array
|
@@ -42,6 +45,23 @@ module Polling
|
|
42
45
|
$stderr.puts ex.message
|
43
46
|
end
|
44
47
|
|
48
|
+
def async_run interval=@interval, debug=false
|
49
|
+
e = Engine.new
|
50
|
+
e.__send__(:start_print, 0)
|
51
|
+
loop do
|
52
|
+
before = Time.now
|
53
|
+
yield if block_given?
|
54
|
+
opts = {
|
55
|
+
interval: interval,
|
56
|
+
before: before,
|
57
|
+
after: Time.now,
|
58
|
+
debug: debug
|
59
|
+
}
|
60
|
+
stime = e.stime_async opts
|
61
|
+
Sleep.exec stime
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
45
65
|
private
|
46
66
|
|
47
67
|
def set_instance_variables variables
|
@@ -51,5 +71,6 @@ module Polling
|
|
51
71
|
end
|
52
72
|
|
53
73
|
alias start run
|
74
|
+
alias sync_run run
|
54
75
|
end
|
55
76
|
end
|
data/lib/polling/engine.rb
CHANGED
@@ -43,6 +43,14 @@ module Polling
|
|
43
43
|
return opts[:init_time]
|
44
44
|
end
|
45
45
|
|
46
|
+
def stime_async opts={}
|
47
|
+
stime = opts[:interval] - (opts[:after] - opts[:before])
|
48
|
+
debug debug: opts[:debug], stime: stime
|
49
|
+
stime
|
50
|
+
rescue => ex
|
51
|
+
$stderr.puts ex.to_s
|
52
|
+
end
|
53
|
+
|
46
54
|
private
|
47
55
|
|
48
56
|
def target target=@target, offset=@offset
|
@@ -61,6 +69,11 @@ module Polling
|
|
61
69
|
@target -= init_time
|
62
70
|
end
|
63
71
|
|
72
|
+
def start_print stime
|
73
|
+
until_time = Time.at(Time.now.to_f + stime)
|
74
|
+
$stdout.print "start: #{until_time}\n"
|
75
|
+
end
|
76
|
+
|
64
77
|
def debug opts={}
|
65
78
|
if opts[:debug]
|
66
79
|
until_time = Time.at(Time.now.to_f + opts[:stime])
|
data/lib/polling/version.rb
CHANGED
data/test/async_run.rb
ADDED
data/test/run.rb
CHANGED
@@ -2,10 +2,9 @@ require File.expand_path(File.dirname(__FILE__)) + "/helper.rb"
|
|
2
2
|
|
3
3
|
class Polling::Test < Test::Unit::TestCase
|
4
4
|
def test_run
|
5
|
-
puts "start: #{Time.now}"
|
6
5
|
Polling.setting offset: 5, debug: true
|
7
6
|
#Polling::run [0,10,20,30,40,50] do
|
8
|
-
Polling::run
|
7
|
+
Polling::run 5 do
|
9
8
|
puts Time.now
|
10
9
|
puts "exec sleep 2"
|
11
10
|
sleep 2
|
data/test/test_engine.rb
CHANGED
@@ -59,6 +59,12 @@ class Polling::Engine::Test < Test::Unit::TestCase
|
|
59
59
|
assert_equal 610, @e.stime(target: @e.increment!(300))
|
60
60
|
end
|
61
61
|
|
62
|
+
def test_stime_async
|
63
|
+
Time.stubs(:now).returns(Time.parse "2012/01/01 00:00:00")
|
64
|
+
assert_equal 3, @e.stime_async(interval: 5, before: Time.now-2, after: Time.now)
|
65
|
+
assert_equal 298, @e.stime_async(interval: 300, before: Time.now-2, after: Time.now)
|
66
|
+
end
|
67
|
+
|
62
68
|
def test_target
|
63
69
|
assert_equal 0, @e.__send__(:target, 0, 0)
|
64
70
|
assert_equal 10, @e.__send__(:target, 10, 0)
|
@@ -92,6 +98,11 @@ class Polling::Engine::Test < Test::Unit::TestCase
|
|
92
98
|
assert_equal -110, @e.__send__(:decrement!, 120)
|
93
99
|
end
|
94
100
|
|
101
|
+
def test_start_print
|
102
|
+
Time.stubs(:now).returns(Time.parse "2012/01/01 00:00:30")
|
103
|
+
assert_nil @e.__send__(:start_print, 5)
|
104
|
+
end
|
105
|
+
|
95
106
|
def test_debug
|
96
107
|
Time.stubs(:now).returns(Time.parse "2012/01/01 00:00:30")
|
97
108
|
opts = {
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: polling
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-30 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: polling
|
15
15
|
email:
|
@@ -30,6 +30,7 @@ files:
|
|
30
30
|
- lib/polling/validate.rb
|
31
31
|
- lib/polling/version.rb
|
32
32
|
- polling.gemspec
|
33
|
+
- test/async_run.rb
|
33
34
|
- test/helper.rb
|
34
35
|
- test/run.rb
|
35
36
|
- test/test_engine.rb
|
@@ -62,6 +63,7 @@ signing_key:
|
|
62
63
|
specification_version: 3
|
63
64
|
summary: polling
|
64
65
|
test_files:
|
66
|
+
- test/async_run.rb
|
65
67
|
- test/helper.rb
|
66
68
|
- test/run.rb
|
67
69
|
- test/test_engine.rb
|