polling 0.0.2 → 0.0.3

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # Polling
2
2
 
3
- fluent-plugin-snmp用pollingライブラリ
3
+ ruby polling library
4
4
 
5
5
  ## Installation
6
6
 
@@ -8,22 +8,36 @@ Add this line to your application's Gemfile:
8
8
 
9
9
  gem 'polling'
10
10
 
11
+ Or install it yourself as:
12
+
13
+ $ gem install polling
14
+
11
15
  ## Usage
12
16
 
13
- 必ず0秒からスタートします
17
+ It starts at per minute 0 second.
14
18
 
15
19
  time = [0,10,20,30,40,50]
16
20
  Polling::run(time,debug=false) do
17
- p "hoge"
21
+ puts "test"
22
+ sleep 2
18
23
  end
19
24
 
20
- もし60以上の値を設定する場合には60で割り切れる値を設定
25
+ The multiple of 60 is set up.
21
26
 
22
27
  time = [300]
23
- Polling::run(time,debug=false) do
24
- p "hoge"
28
+ Polling::run(time) do
29
+ puts "hoge"
30
+ sleep 2
31
+ end
32
+
33
+ Please set a vlue that is divisible by 60.
34
+
35
+ time = ["5s"]
36
+ Polling::run(time) do
37
+ puts "test"
38
+ sleep 2
25
39
  end
26
40
 
27
41
  ## Copyright
28
42
 
29
- Copyright:: Copyright (c) 2012, Internet Initiative Japan Inc. All rights reserved.
43
+ Copyright (c) 2012, hiro-su All rights reserved.
@@ -3,8 +3,44 @@ module Polling
3
3
  module_function
4
4
  def check_value(value)
5
5
  value = value.to_i
6
- raise TypeError, "Please set as a multiple of 60" if (value % 60 != 0) && value > 60
6
+ raise TypeError, "Please set a value that is multiple of 60." if (value % 60 != 0) && value > 60
7
7
  return value
8
8
  end
9
+
10
+ def check_arr(arr)
11
+ if arr.count == 1
12
+ time = convert(arr[0])
13
+ arr = time < 60 ? create_arr(time) : [time]
14
+ raise TypeError, "Please set a value that is divisible by 60." if (60 % time != 0) && time < 60
15
+ end
16
+ return arr
17
+ end
18
+
19
+ def convert(value)
20
+ case value
21
+ when /(\d+)s/
22
+ value = $1.to_i
23
+ when /(\d+)m/
24
+ value = $1.to_i*60
25
+ when /(\d+)h/
26
+ value = $1.to_i*60*60
27
+ when /(\d+)d/
28
+ value = $1.to_i*60*60*24
29
+ when String
30
+ value = value.to_i
31
+ end
32
+ return value
33
+ end
34
+
35
+ def create_arr(time)
36
+ arr = Array.new
37
+ arr << 0 if time != 0
38
+ result = time
39
+ while time < 60
40
+ arr << time
41
+ time += result
42
+ end
43
+ return arr
44
+ end
9
45
  end
10
46
  end
@@ -4,12 +4,7 @@ module Polling
4
4
  module Target
5
5
  module_function
6
6
 
7
- class << self
8
- #TODO imple delay
9
- attr_accessor :delay
10
- end
11
-
12
- def create_time(interval,debug=false)
7
+ def interval(interval,debug=false)
13
8
  init = 60
14
9
  now_to_f = Time.now.to_f
15
10
 
@@ -23,5 +18,6 @@ module Polling
23
18
 
24
19
  return stime
25
20
  end
21
+
26
22
  end
27
23
  end
@@ -1,3 +1,3 @@
1
1
  module Polling
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/polling.rb CHANGED
@@ -7,12 +7,12 @@ module Polling
7
7
  module_function
8
8
  def run(arr, debug=false)
9
9
  start = true
10
-
10
+ arr = Confirm::check_arr(arr)
11
11
  loop do
12
12
  arr.each do |time|
13
13
  time = Confirm::check_value(time)
14
- Sleep::exec Target::create_time(0, debug) if start
15
- Sleep::exec Target::create_time(time, debug) unless start
14
+ Sleep::exec Target::interval(0, debug) if start
15
+ Sleep::exec Target::interval(time, debug) unless start
16
16
  start = false
17
17
  yield
18
18
  end
data/polling.gemspec CHANGED
@@ -6,11 +6,11 @@ require 'polling/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "polling"
8
8
  gem.version = Polling::VERSION
9
- gem.authors = ["hiroshi sugimoto"]
10
- gem.email = ["h-sugimoto@iij.ad.jp"]
9
+ gem.authors = ["hiro-su"]
10
+ gem.email = ["h.sugipon@gmail.com"]
11
11
  gem.description = %q{polling}
12
12
  gem.summary = %q{polling}
13
- gem.homepage = "https://github.com/iij/polling"
13
+ gem.homepage = "https://github.com/hiro-su/polling"
14
14
 
15
15
  gem.files = `git ls-files`.split($/)
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
data/test/helper.rb CHANGED
@@ -2,5 +2,5 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
 
4
4
  require 'test/unit'
5
- require 'mocha'
5
+ require 'mocha/setup'
6
6
  require 'polling'
data/test/test_confirm.rb CHANGED
@@ -5,7 +5,21 @@ class PollingTest < Test::Unit::TestCase
5
5
  assert_equal 0, Polling::Confirm::check_value(0)
6
6
  assert_equal 0, Polling::Confirm::check_value("0")
7
7
  assert_equal 60, Polling::Confirm::check_value(60)
8
- assert_equal 60, Polling::Confirm::check_value("60")
9
- assert_equal RuntimeError, Polling::Confirm::check_value(61)
8
+ assert_equal 5, Polling::Confirm::check_value("5")
9
+
10
+ assert_equal 5, Polling::Confirm::convert(5)
11
+ assert_equal 5, Polling::Confirm::convert("5")
12
+ assert_equal 5, Polling::Confirm::convert("5s")
13
+ assert_equal 300, Polling::Confirm::convert("5m")
14
+ assert_equal 18000, Polling::Confirm::convert("5h")
15
+
16
+ assert_equal [0,10,20,30,40,50], Polling::Confirm::check_arr(["10s"])
17
+ assert_equal [0,10,20,30,40,50], Polling::Confirm::check_arr(["10"])
18
+ assert_equal [0,10,20,30,40,50], Polling::Confirm::check_arr([10])
19
+ assert_equal [0,30], Polling::Confirm::check_arr([30])
20
+ assert_equal [60], Polling::Confirm::check_arr([60])
21
+ assert_equal [60], Polling::Confirm::check_arr(["60"])
22
+ assert_equal [60], Polling::Confirm::check_arr(["60s"])
23
+ assert_equal [120], Polling::Confirm::check_arr(["120s"])
10
24
  end
11
25
  end
data/test/test_run.rb CHANGED
@@ -1,10 +1,11 @@
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,5,10,15,20,25,30,35,40,45,50,55]
6
- # Polling::run(arr,true) do
7
- # print "end: Ctrl+c\n"
8
- # end
9
- #end
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
10
11
  end
data/test/test_target.rb CHANGED
@@ -5,22 +5,22 @@ class PollingTest < Test::Unit::TestCase
5
5
 
6
6
  def test_target_time
7
7
  Time.stubs(:now).returns(Time.parse "2012/12/31 23:59:59")
8
- assert_equal 1, Polling::Target::create_time(0)
9
- assert_equal 6, Polling::Target::create_time(5)
10
- assert_equal 0, Polling::Target::create_time(59)
11
- assert_equal 1, Polling::Target::create_time(60)
12
- assert_equal 2, Polling::Target::create_time(61)
8
+ assert_equal 1, Polling::Target::interval(0)
9
+ assert_equal 6, Polling::Target::interval(5)
10
+ assert_equal 0, Polling::Target::interval(59)
11
+ assert_equal 1, Polling::Target::interval(60)
12
+ assert_equal 2, Polling::Target::interval(61)
13
13
 
14
14
  arr = [0,1,5,10,20,30,40,50,58]
15
15
  arr.each do |time|
16
- assert_equal time+1, Polling::Target::create_time(time)
16
+ assert_equal time+1, Polling::Target::interval(time)
17
17
  end
18
18
 
19
19
  Time.stubs(:now).returns(Time.parse "2012/01/01 00:00:00")
20
- assert_equal 180, Polling::Target::create_time(180,true)
21
- assert_equal 300, Polling::Target::create_time(300,true)
22
- assert_equal 300, Polling::Target::create_time(300,true)
23
- assert_equal 3600, Polling::Target::create_time(3600,true)
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
24
 
25
25
  end
26
26
  end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polling
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
- - hiroshi sugimoto
8
+ - hiro-su
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-10 00:00:00.000000000 Z
12
+ date: 2012-11-16 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: polling
15
15
  email:
16
- - h-sugimoto@iij.ad.jp
16
+ - h.sugipon@gmail.com
17
17
  executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
@@ -34,7 +34,7 @@ files:
34
34
  - test/test_run.rb
35
35
  - test/test_sleep.rb
36
36
  - test/test_target.rb
37
- homepage: https://github.com/iij/polling
37
+ homepage: https://github.com/hiro-su/polling
38
38
  licenses: []
39
39
  post_install_message:
40
40
  rdoc_options: []