resque-throttle 0.2.19 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -58,7 +58,7 @@ Scott J. Tamosunas :: tamosunas@gmail.com :: @scotttam
58
58
 
59
59
  Copyright
60
60
  ---------
61
- Copyright (c) 2010 Zendesk. See LICENSE for details.
61
+ Copyright (c) 2010 Scott J. Tamosunas. See LICENSE for details.
62
62
 
63
63
  [0]: http://github.com/defunkt/resque
64
64
  [1]: http://help.github.com/forking/
data/Rakefile CHANGED
@@ -13,7 +13,6 @@ begin
13
13
  gem.add_dependency "resque", ">=1.6.0"
14
14
  gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
15
15
  gem.add_development_dependency "mocha", ">=0.9.8"
16
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
16
  end
18
17
  Jeweler::GemcutterTasks.new
19
18
  rescue LoadError
@@ -44,7 +43,7 @@ task :test => :check_dependencies
44
43
 
45
44
  task :default => :test
46
45
 
47
- require 'rake/rdoctask'
46
+ require 'rdoc/task'
48
47
  Rake::RDocTask.new do |rdoc|
49
48
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
50
49
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.19
1
+ 0.3.0
data/lib/resque/resque.rb CHANGED
@@ -3,7 +3,6 @@ require "resque/throttle"
3
3
  module Resque
4
4
  extend self
5
5
 
6
- # Raised when trying to create a job that is throttled
7
6
  class ThrottledError < RuntimeError; end
8
7
 
9
8
  def enqueue_with_throttle(klass, *args)
@@ -20,7 +19,7 @@ module Resque
20
19
  def should_throttle?(klass, *args)
21
20
  return false if !throttle_job?(klass) || klass.disabled
22
21
  return true if key_found?(klass, *args)
23
- redis.set(klass.key(*args), true, klass.can_run_every)
22
+ set(klass.key(*args), klass.can_run_every)
24
23
  return false
25
24
  end
26
25
 
@@ -31,4 +30,12 @@ module Resque
31
30
  def throttle_job?(klass)
32
31
  klass.ancestors.include?(Resque::ThrottledJob)
33
32
  end
33
+
34
+ def set(key, can_run_every)
35
+ if redis.respond_to?(:setex)
36
+ redis.setex(key, can_run_every, true)
37
+ else
38
+ redis.set(key, true, can_run_every)
39
+ end
40
+ end
34
41
  end
@@ -1,53 +1,45 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{resque-throttle}
8
- s.version = "0.2.19"
7
+ s.name = "resque-throttle"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Scott J. Tamosunas"]
12
- s.date = %q{2010-03-10}
13
- s.description = %q{resque-throttle is an extension to the resque queue system that restricts the frequency in which certain jobs are run. Add more description here.}
14
- s.email = %q{tamosunas@gmail.com}
12
+ s.date = "2012-04-02"
13
+ s.description = "resque-throttle is an extension to the resque queue system that restricts the frequency in which certain jobs are run. Add more description here."
14
+ s.email = "tamosunas@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.markdown"
17
+ "README.markdown"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.markdown",
24
- "Rakefile",
25
- "VERSION",
26
- "lib/resque-throttle.rb",
27
- "lib/resque/resque.rb",
28
- "lib/resque/throttle.rb",
29
- "lib/resque/throttled_job.rb",
30
- "resque-throttle.gemspec",
31
- "test/resque/resque_test.rb",
32
- "test/resque/throttled_job_test.rb",
33
- "test/test_helper.rb"
34
- ]
35
- s.homepage = %q{http://github.com/scotttam/resque-throttle}
36
- s.rdoc_options = ["--charset=UTF-8"]
37
- s.require_paths = ["lib"]
38
- s.rubygems_version = %q{1.3.5}
39
- s.summary = %q{resque-throttle is an extension to the resque queue system that restricts the frequency in which certain jobs are run.}
40
- s.test_files = [
21
+ "LICENSE",
22
+ "README.markdown",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "lib/resque-throttle.rb",
26
+ "lib/resque/resque.rb",
27
+ "lib/resque/throttle.rb",
28
+ "lib/resque/throttled_job.rb",
29
+ "resque-throttle.gemspec",
41
30
  "test/resque/resque_test.rb",
42
- "test/resque/throttled_job_test.rb",
43
- "test/test_helper.rb"
31
+ "test/resque/throttled_job_test.rb",
32
+ "test/test_helper.rb"
44
33
  ]
34
+ s.homepage = "http://github.com/scotttam/resque-throttle"
35
+ s.require_paths = ["lib"]
36
+ s.rubygems_version = "1.8.21"
37
+ s.summary = "resque-throttle is an extension to the resque queue system that restricts the frequency in which certain jobs are run."
45
38
 
46
39
  if s.respond_to? :specification_version then
47
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
48
40
  s.specification_version = 3
49
41
 
50
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
42
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
51
43
  s.add_runtime_dependency(%q<resque>, [">= 1.6.0"])
52
44
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
53
45
  s.add_development_dependency(%q<mocha>, [">= 0.9.8"])
@@ -4,16 +4,16 @@ class ResqueTest < Test::Unit::TestCase
4
4
 
5
5
  context "Resque" do
6
6
  setup do
7
- Resque.redis.flush_all
7
+ flush_all
8
8
  assert_nil Resque.redis.get(OneHourThrottledJob.key)
9
9
  @bogus_args = "bogus_arg"
10
10
  end
11
11
 
12
12
  context "#enqueue" do
13
13
  should "add a throttled job key to the set with the proper TTL (Expire)" do
14
- Resque.expects(:enqueue_without_throttle).returns(true)
14
+ Resque.expects(:enqueue_without_throttle).returns(true)
15
15
  assert Resque.enqueue(IdentifierThrottledJob, @bogus_args)
16
- assert Resque.redis.keys('*').include?("resque:IdentifierThrottledJob:my_bogus_arg")
16
+ assert Resque.redis.keys('*').include?("IdentifierThrottledJob:my_bogus_arg")
17
17
  assert_equal 3600, Resque.redis.ttl(IdentifierThrottledJob.key(@bogus_args))
18
18
  end
19
19
 
@@ -30,4 +30,8 @@ class ResqueTest < Test::Unit::TestCase
30
30
  end
31
31
  end
32
32
  end
33
+
34
+ def flush_all
35
+ Resque.redis.respond_to?(:flushall) ? Resque.redis.flushall : Resque.redis.flush_all
36
+ end
33
37
  end
metadata CHANGED
@@ -1,59 +1,74 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: resque-throttle
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.19
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
+ authors:
7
8
  - Scott J. Tamosunas
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2010-03-10 00:00:00 -08:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2012-04-02 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: resque
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.6.0
17
22
  type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
23
29
  version: 1.6.0
24
- version:
25
- - !ruby/object:Gem::Dependency
30
+ - !ruby/object:Gem::Dependency
26
31
  name: thoughtbot-shoulda
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
27
38
  type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: "0"
34
- version:
35
- - !ruby/object:Gem::Dependency
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
36
47
  name: mocha
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 0.9.8
37
54
  type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
43
61
  version: 0.9.8
44
- version:
45
- description: resque-throttle is an extension to the resque queue system that restricts the frequency in which certain jobs are run. Add more description here.
62
+ description: resque-throttle is an extension to the resque queue system that restricts
63
+ the frequency in which certain jobs are run. Add more description here.
46
64
  email: tamosunas@gmail.com
47
65
  executables: []
48
-
49
66
  extensions: []
50
-
51
- extra_rdoc_files:
67
+ extra_rdoc_files:
52
68
  - LICENSE
53
69
  - README.markdown
54
- files:
70
+ files:
55
71
  - .document
56
- - .gitignore
57
72
  - LICENSE
58
73
  - README.markdown
59
74
  - Rakefile
@@ -66,35 +81,29 @@ files:
66
81
  - test/resque/resque_test.rb
67
82
  - test/resque/throttled_job_test.rb
68
83
  - test/test_helper.rb
69
- has_rdoc: true
70
84
  homepage: http://github.com/scotttam/resque-throttle
71
85
  licenses: []
72
-
73
86
  post_install_message:
74
- rdoc_options:
75
- - --charset=UTF-8
76
- require_paths:
87
+ rdoc_options: []
88
+ require_paths:
77
89
  - lib
78
- required_ruby_version: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: "0"
83
- version:
84
- required_rubygems_version: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: "0"
89
- version:
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
90
102
  requirements: []
91
-
92
103
  rubyforge_project:
93
- rubygems_version: 1.3.5
104
+ rubygems_version: 1.8.21
94
105
  signing_key:
95
106
  specification_version: 3
96
- summary: resque-throttle is an extension to the resque queue system that restricts the frequency in which certain jobs are run.
97
- test_files:
98
- - test/resque/resque_test.rb
99
- - test/resque/throttled_job_test.rb
100
- - test/test_helper.rb
107
+ summary: resque-throttle is an extension to the resque queue system that restricts
108
+ the frequency in which certain jobs are run.
109
+ test_files: []
data/.gitignore DELETED
@@ -1,22 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
22
- .idea