rufus-scheduler 3.0.0 → 3.0.9

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/spec/spec_helper.rb CHANGED
@@ -5,12 +5,26 @@
5
5
  # Wed Apr 17 06:00:59 JST 2013
6
6
  #
7
7
 
8
- Thread.abort_on_exception = true
8
+ puts "RUBY_VERSION: #{RUBY_VERSION}"
9
+ puts "RUBY_PLATFORM: #{RUBY_PLATFORM}"
9
10
 
11
+ Thread.abort_on_exception = true
10
12
 
11
13
  require 'stringio'
12
14
  require 'rufus-scheduler'
13
15
 
16
+ #
17
+ # misc helper methods
18
+
19
+ def ruby18?
20
+
21
+ !! RUBY_VERSION.match(/^1\.8\./)
22
+ end
23
+
24
+ def jruby?
25
+
26
+ !! RUBY_PLATFORM.match(/java/)
27
+ end
14
28
 
15
29
  def local(*args)
16
30
 
@@ -23,6 +37,16 @@ def utc(*args)
23
37
  Time.utc(*args)
24
38
  end
25
39
 
40
+ def ltz(tz, *args)
41
+
42
+ in_zone(tz) { Time.local(*args) }
43
+ end
44
+
45
+ def ltu(tz, *args)
46
+
47
+ in_zone(tz) { Time.local(*args) }.getutc
48
+ end
49
+
26
50
  def sleep_until_next_minute
27
51
 
28
52
  min = Time.now.min
@@ -35,6 +59,40 @@ def sleep_until_next_second
35
59
  while Time.now.sec == sec; sleep 0.2; end
36
60
  end
37
61
 
62
+ def in_zone(zone_name, &block)
63
+
64
+ prev_tz = ENV['TZ']
65
+ ENV['TZ'] = zone_name
66
+
67
+ block.call
68
+
69
+ ensure
70
+
71
+ ENV['TZ'] = prev_tz
72
+ end
73
+
74
+ def with_chronic(&block)
75
+
76
+ require 'chronic'
77
+
78
+ Object.const_set(:Khronic, Chronic) unless defined?(Khronic)
79
+ Object.const_set(:Chronic, Khronic) unless defined?(Chronic)
80
+
81
+ block.call
82
+
83
+ ensure
84
+
85
+ Object.send(:remove_const, :Chronic)
86
+ end
87
+
88
+ def without_chronic(&block) # for quick counter-tests ;-)
89
+
90
+ block.call
91
+ end
92
+
93
+
94
+ #
95
+ # matchers
38
96
 
39
97
  #require 'rspec/expectations'
40
98
 
@@ -60,6 +118,9 @@ RSpec::Matchers.define :be_within_1s_of do |expected|
60
118
  end
61
119
 
62
120
 
121
+ #
122
+ # configure
123
+
63
124
  #RSpec.configure do |config|
64
125
  #end
65
126
 
data/spec/threads_spec.rb CHANGED
@@ -21,7 +21,7 @@ describe Rufus::Scheduler do
21
21
 
22
22
  it 'starts with an empty thread pool' do
23
23
 
24
- @scheduler.work_threads.size.should == 0
24
+ expect(@scheduler.work_threads.size).to eq(0)
25
25
  end
26
26
 
27
27
  it 'does not cross the max_work_threads threshold' do
@@ -42,7 +42,28 @@ describe Rufus::Scheduler do
42
42
  # p t[:rufus_scheduler_job].class
43
43
  #end
44
44
 
45
- @scheduler.work_threads.size.should == 5
45
+ expect(@scheduler.work_threads.size).to eq(5)
46
+ end
47
+
48
+ it 'does not cross the max_work_threads threshold (overlap: false)' do
49
+
50
+ #@scheduler.min_work_threads = 2
51
+ @scheduler.max_work_threads = 5
52
+
53
+ 10.times do
54
+ @scheduler.in '0s', :overlap => false do
55
+ sleep 5
56
+ end
57
+ end
58
+
59
+ sleep 0.5
60
+
61
+ #@scheduler.job_threads.each do |t|
62
+ # p t.keys
63
+ # p t[:rufus_scheduler_job].class
64
+ #end
65
+
66
+ expect(@scheduler.work_threads.size).to eq(5)
46
67
  end
47
68
 
48
69
  it 'does not execute unscheduled jobs' do
@@ -68,7 +89,7 @@ describe Rufus::Scheduler do
68
89
 
69
90
  sleep(2)
70
91
 
71
- counter.should == 1
92
+ expect(counter).to eq(1)
72
93
  end
73
94
  end
74
95
  end
metadata CHANGED
@@ -1,64 +1,80 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rufus-scheduler
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 3.0.0
4
+ version: 3.0.9
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - John Mettraux
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-01 00:00:00.000000000 Z
12
+ date: 2014-08-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: tzinfo
16
- version_requirements: !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
17
18
  requirements:
18
- - - '>='
19
+ - - ! '>='
19
20
  - !ruby/object:Gem::Version
20
21
  version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
21
25
  none: false
22
- requirement: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - '>='
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0'
27
- none: false
28
- prerelease: false
29
- type: :runtime
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rake
32
- version_requirements: !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
33
34
  requirements:
34
- - - '>='
35
+ - - ! '>='
35
36
  - !ruby/object:Gem::Version
36
37
  version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
37
41
  none: false
38
- requirement: !ruby/object:Gem::Requirement
39
42
  requirements:
40
- - - '>='
43
+ - - ! '>='
41
44
  - !ruby/object:Gem::Version
42
45
  version: '0'
43
- none: false
44
- prerelease: false
45
- type: :development
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rspec
48
- version_requirements: !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
49
50
  requirements:
50
- - - '>='
51
+ - - ! '>='
51
52
  - !ruby/object:Gem::Version
52
53
  version: 2.13.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
53
57
  none: false
54
- requirement: !ruby/object:Gem::Requirement
55
58
  requirements:
56
- - - '>='
59
+ - - ! '>='
57
60
  - !ruby/object:Gem::Version
58
61
  version: 2.13.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: chronic
64
+ requirement: !ruby/object:Gem::Requirement
59
65
  none: false
60
- prerelease: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
61
70
  type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
62
78
  description: job scheduler for Ruby (at, cron, in and every jobs).
63
79
  email:
64
80
  - jmettraux@gmail.com
@@ -69,6 +85,7 @@ files:
69
85
  - Rakefile
70
86
  - lib/rufus-scheduler.rb
71
87
  - lib/rufus/scheduler.rb
88
+ - lib/rufus/scheduler/locks.rb
72
89
  - lib/rufus/scheduler/cronline.rb
73
90
  - lib/rufus/scheduler/util.rb
74
91
  - lib/rufus/scheduler/jobs.rb
@@ -81,18 +98,22 @@ files:
81
98
  - spec/job_at_spec.rb
82
99
  - spec/schedule_at_spec.rb
83
100
  - spec/error_spec.rb
101
+ - spec/lock_spec.rb
84
102
  - spec/schedule_cron_spec.rb
85
103
  - spec/job_interval_spec.rb
86
104
  - spec/job_repeat_spec.rb
87
- - spec/lockfile_spec.rb
88
105
  - spec/schedule_every_spec.rb
89
106
  - spec/threads_spec.rb
90
107
  - spec/cronline_spec.rb
108
+ - spec/lock_lockfile_spec.rb
91
109
  - spec/job_in_spec.rb
92
110
  - spec/parse_spec.rb
93
111
  - spec/scheduler_spec.rb
112
+ - spec/lock_custom_spec.rb
113
+ - spec/basics_spec.rb
94
114
  - spec/job_cron_spec.rb
95
115
  - spec/job_every_spec.rb
116
+ - spec/lock_flock_spec.rb
96
117
  - rufus-scheduler.gemspec
97
118
  - CHANGELOG.txt
98
119
  - TODO.txt
@@ -102,32 +123,32 @@ files:
102
123
  homepage: http://github.com/jmettraux/rufus-scheduler
103
124
  licenses:
104
125
  - MIT
105
- post_install_message: "\n***\n\nThanks for installing rufus-scheduler 3.0.0\n\nIt\
106
- \ might not be 100% compatible with rufus-scheduler 2.x.\n\nIf you encounter issues\
107
- \ with this new rufus-scheduler, especially\nif your app worked fine with previous\
108
- \ versions of it, you can\n\nA) Forget it and peg your Gemfile to rufus-scheduler\
109
- \ 2.0.24\n\nand / or\n\nB) Take some time to carefully report the issue at\n https://github.com/jmettraux/rufus-scheduler/issue\n\
110
- \nFor general help about rufus-scheduler, ask via:\nhttp://stackoverflow.com/questions/ask?tags=rufus-scheduler+ruby\n\
111
- \nCheers.\n\n***\n "
126
+ post_install_message: ! "\n***\n\nThanks for installing rufus-scheduler 3.0.9\n\nIt
127
+ might not be 100% compatible with rufus-scheduler 2.x.\n\nIf you encounter issues
128
+ with this new rufus-scheduler, especially\nif your app worked fine with previous
129
+ versions of it, you can\n\nA) Forget it and peg your Gemfile to rufus-scheduler
130
+ 2.0.24\n\nand / or\n\nB) Take some time to carefully report the issue at\n https://github.com/jmettraux/rufus-scheduler/issues\n\nFor
131
+ general help about rufus-scheduler, ask via:\nhttp://stackoverflow.com/questions/ask?tags=rufus-scheduler+ruby\n\nCheers.\n\n***\n
132
+ \ "
112
133
  rdoc_options: []
113
134
  require_paths:
114
135
  - lib
115
136
  required_ruby_version: !ruby/object:Gem::Requirement
137
+ none: false
116
138
  requirements:
117
- - - '>='
139
+ - - ! '>='
118
140
  - !ruby/object:Gem::Version
119
141
  version: '0'
120
- none: false
121
142
  required_rubygems_version: !ruby/object:Gem::Requirement
143
+ none: false
122
144
  requirements:
123
- - - '>='
145
+ - - ! '>='
124
146
  - !ruby/object:Gem::Version
125
147
  version: '0'
126
- none: false
127
148
  requirements: []
128
149
  rubyforge_project: rufus
129
- rubygems_version: 1.8.24
130
- signing_key:
150
+ rubygems_version: 1.8.23
151
+ signing_key:
131
152
  specification_version: 3
132
153
  summary: job scheduler for Ruby (at, cron, in and every jobs)
133
154
  test_files: []