polling 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -17,10 +17,29 @@ Or install it yourself as:
17
17
  It starts at per minute 0 second.
18
18
 
19
19
  time = [0,10,20,30,40,50]
20
- Polling::run(time,debug=false) do
20
+ Polling::run(time,debug=true) do
21
21
  puts "test"
22
22
  sleep 2
23
23
  end
24
+
25
+ result
26
+
27
+ start: 2012-11-16 19:47:36 +0900
28
+ sleep 23.980872869491577seconds (until 2012-11-16 19:48:00 +0900)
29
+ test
30
+ sleep 7.999034881591797seconds (until 2012-11-16 19:48:10 +0900)
31
+ test
32
+ sleep 7.999000072479248seconds (until 2012-11-16 19:48:20 +0900)
33
+ test
34
+ sleep 7.998318195343018seconds (until 2012-11-16 19:48:30 +0900)
35
+ test
36
+ sleep 7.998938083648682seconds (until 2012-11-16 19:48:40 +0900)
37
+ test
38
+ sleep 7.999677896499634seconds (until 2012-11-16 19:48:50 +0900)
39
+ test
40
+ sleep 7.998055934906006seconds (until 2012-11-16 19:49:00 +0900)
41
+ test
42
+ sleep 7.998072147369385seconds (until 2012-11-16 19:49:10 +0900)
24
43
 
25
44
  The multiple of 60 is set up.
26
45
 
@@ -32,7 +51,7 @@ The multiple of 60 is set up.
32
51
 
33
52
  Please set a vlue that is divisible by 60.
34
53
 
35
- time = ["5s"]
54
+ time = ["5s"] #or 5. support string is s,m,h,d.
36
55
  Polling::run(time) do
37
56
  puts "test"
38
57
  sleep 2
@@ -4,18 +4,22 @@ module Polling
4
4
  module Target
5
5
  module_function
6
6
 
7
- def interval(interval,debug=false)
7
+ def interval(interval,*args)
8
8
  init = 60
9
9
  now_to_f = Time.now.to_f
10
-
11
10
  stime = interval - (now_to_f % init)
12
- if stime < 0
11
+
12
+ args.each do |arg|
13
+ @start = arg[:start]
14
+ @debug = arg[:debug]
15
+ end
16
+
17
+ if !@start && stime < 0
13
18
  stime = init - stime.abs
14
19
  end
15
20
 
16
21
  ### debug
17
- print "sleep #{stime}seconds (until #{Time.at(now_to_f + stime)})\n" if debug
18
-
22
+ print "sleep #{stime}seconds (until #{Time.at(now_to_f + stime)})\n" if @debug && stime > 0
19
23
  return stime
20
24
  end
21
25
 
@@ -1,3 +1,3 @@
1
1
  module Polling
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/polling.rb CHANGED
@@ -6,14 +6,15 @@ require 'polling/target'
6
6
  module Polling
7
7
  module_function
8
8
  def run(arr, debug=false)
9
- start = true
10
9
  arr = Confirm::check_arr(arr)
10
+ args = {:start => false, :debug => debug}
11
+ Sleep::exec Target::interval(0,args)
12
+ args[:start] = true
11
13
  loop do
12
14
  arr.each do |time|
13
15
  time = Confirm::check_value(time)
14
- Sleep::exec Target::interval(0, debug) if start
15
- Sleep::exec Target::interval(time, debug) unless start
16
- start = false
16
+ Sleep::exec Target::interval(time,args)
17
+ args[:start] = false
17
18
  yield
18
19
  end
19
20
  end
data/test/test_confirm.rb CHANGED
@@ -13,6 +13,8 @@ class PollingTest < Test::Unit::TestCase
13
13
  assert_equal 300, Polling::Confirm::convert("5m")
14
14
  assert_equal 18000, Polling::Confirm::convert("5h")
15
15
 
16
+ assert_equal ["0","10","20","30","40","50"], Polling::Confirm::check_arr(["0","10","20","30","40","50"])
17
+ assert_equal [0,10,20,30,40,50], Polling::Confirm::check_arr([0,10,20,30,40,50])
16
18
  assert_equal [0,10,20,30,40,50], Polling::Confirm::check_arr(["10s"])
17
19
  assert_equal [0,10,20,30,40,50], Polling::Confirm::check_arr(["10"])
18
20
  assert_equal [0,10,20,30,40,50], Polling::Confirm::check_arr([10])
data/test/test_run.rb CHANGED
@@ -1,11 +1,14 @@
1
1
  require File.expand_path(File.dirname(__FILE__)) + "/helper.rb"
2
2
 
3
3
  class PollingTest < Test::Unit::TestCase
4
- def test_run
5
- arr = [0,10,20,30,40,50]
6
- Polling::run(arr,true) do
7
- puts "test"
8
- sleep 2
9
- end
10
- end
4
+ #def test_run
5
+ # puts "start: #{Time.now}"
6
+ # #arr = [5,15,25,35,45,55]
7
+ # #arr = ["0","10","20","30","40","50"]
8
+ # arr = ["10s"]
9
+ # Polling::run(arr,true) do
10
+ # puts Time.now
11
+ # sleep 2
12
+ # end
13
+ #end
11
14
  end
data/test/test_target.rb CHANGED
@@ -16,11 +16,13 @@ class PollingTest < Test::Unit::TestCase
16
16
  assert_equal time+1, Polling::Target::interval(time)
17
17
  end
18
18
 
19
+ debug = {:debug => true}
20
+
19
21
  Time.stubs(:now).returns(Time.parse "2012/01/01 00:00:00")
20
- assert_equal 180, Polling::Target::interval(180,true)
21
- assert_equal 300, Polling::Target::interval(300,true)
22
- assert_equal 300, Polling::Target::interval(300,true)
23
- assert_equal 3600, Polling::Target::interval(3600,true)
24
-
22
+ assert_equal 180, Polling::Target::interval(180,debug)
23
+ assert_equal 300, Polling::Target::interval(300,debug)
24
+ assert_equal 300, Polling::Target::interval(300,debug)
25
+ assert_equal 3600, Polling::Target::interval(3600,debug)
25
26
  end
27
+
26
28
  end
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.0.3
4
+ version: 0.0.5
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: 2012-11-16 00:00:00.000000000 Z
12
+ date: 2012-11-18 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: polling
15
15
  email: