resque-throttle 0.2.19 → 0.3.0

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.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