guard-resque 0.0.1
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/.gitignore +4 -0
- data/CHANGELOG.md +26 -0
- data/Gemfile +4 -0
- data/Guardfile +10 -0
- data/README.markdown +75 -0
- data/Rakefile +32 -0
- data/guard-resque.gemspec +30 -0
- data/lib/guard-resque.rb +1 -0
- data/lib/guard/resque.rb +83 -0
- data/lib/guard/resque/templates/Guardfile +4 -0
- data/lib/guard/resque/version.rb +5 -0
- data/spec/guard/resque_spec.rb +20 -0
- data/spec/spec_helper.rb +10 -0
- metadata +127 -0
data/.gitignore
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
## 0.0.1
|
2
|
+
|
3
|
+
* Forked from guard-delayed and started guard-resque
|
4
|
+
|
5
|
+
|
6
|
+
-- guard-delayed --
|
7
|
+
|
8
|
+
## 0.1.0 (2011-07-28)
|
9
|
+
|
10
|
+
* Fixed options for current delayed_job version (from dbloete)
|
11
|
+
* Environment settings needed to be passed in via RAILS_ENV=
|
12
|
+
|
13
|
+
## 0.0.9 (2011-06-22)
|
14
|
+
|
15
|
+
* Fixed argument passing to the start script
|
16
|
+
* Cleaned up some documentation.
|
17
|
+
|
18
|
+
## 0.0.8 (2011-05-24)
|
19
|
+
|
20
|
+
* Changed template to include :environment => 'development'
|
21
|
+
* Changed name from 'guard-delayed_job' to 'guard-delayed'
|
22
|
+
* Fixed options passing
|
23
|
+
|
24
|
+
## 0.0.3 (2011-05-23)
|
25
|
+
|
26
|
+
* Initial release.
|
data/Gemfile
ADDED
data/Guardfile
ADDED
data/README.markdown
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
# Guard::Resque
|
2
|
+
|
3
|
+
Guard::Resque automatically starts/stops/restarts resque workers
|
4
|
+
|
5
|
+
*forked from [Guard::Delayed](http://github.com/suranyami/guard-delayed)*
|
6
|
+
|
7
|
+
## Install
|
8
|
+
|
9
|
+
Please be sure to have [Guard](http://github.com/guard/guard) installed before continue.
|
10
|
+
|
11
|
+
Install the gem:
|
12
|
+
|
13
|
+
gem install guard-resque
|
14
|
+
|
15
|
+
Add it to your Gemfile (inside test group):
|
16
|
+
|
17
|
+
gem 'guard-resque'
|
18
|
+
|
19
|
+
Add guard definition to your Guardfile by running this command:
|
20
|
+
|
21
|
+
guard init resque
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
Please read [Guard usage doc](http://github.com/guard/guard#readme).
|
26
|
+
|
27
|
+
I suggest you put the resque guard definition *before* your test/rspec guard if your tests depend on it
|
28
|
+
being active.
|
29
|
+
|
30
|
+
## Guardfile
|
31
|
+
|
32
|
+
guard 'resque', :environment => 'development' do
|
33
|
+
watch(%r{^app/(.+)\.rb})
|
34
|
+
end
|
35
|
+
|
36
|
+
## Development
|
37
|
+
|
38
|
+
* Source hosted at [GitHub](http://github.com/railsjedi/guard-resque)
|
39
|
+
* Report issues/Questions/Feature requests on [GitHub Issues](http://github.com/railsjedi/guard-resque/issues)
|
40
|
+
|
41
|
+
Pull requests are very welcome! Make sure your patches are well tested. Please create a topic branch for every separate change
|
42
|
+
you make.
|
43
|
+
|
44
|
+
## Testing the gem locally
|
45
|
+
|
46
|
+
gem install guard-resque-0.x.x.gem
|
47
|
+
|
48
|
+
## Building and deploying gem
|
49
|
+
|
50
|
+
* Update the version number in `lib/guard/resque/version.rb`
|
51
|
+
* Update `CHANGELOG.md`
|
52
|
+
* Build the gem:
|
53
|
+
|
54
|
+
gem build guard-resque.gemspec
|
55
|
+
|
56
|
+
* Push to rubygems.org:
|
57
|
+
|
58
|
+
gem push guard-resque-0.x.x.gem
|
59
|
+
|
60
|
+
|
61
|
+
## Guard::Delayed Authors
|
62
|
+
|
63
|
+
[David Parry](https://github.com/suranyami)
|
64
|
+
[Dennis Reimann](https://github.com/dbloete)
|
65
|
+
|
66
|
+
Ideas for this gem came from [Guard::WEBrick](http://github.com/fnichol/guard-webrick).
|
67
|
+
|
68
|
+
|
69
|
+
## Guard::Resque Authors
|
70
|
+
|
71
|
+
[Jacques Crocker](https://github.com/railsjedi)
|
72
|
+
|
73
|
+
I hacked this together from the `guard-delayed` gem for use with Resque. All credit go to the original authors though. I just search/replaced and tweaked a few things
|
74
|
+
|
75
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
require 'rspec/core/rake_task'
|
5
|
+
RSpec::Core::RakeTask.new(:spec)
|
6
|
+
task :default => :spec
|
7
|
+
|
8
|
+
namespace(:spec) do
|
9
|
+
desc "Run all specs on multiple ruby versions (requires rvm)"
|
10
|
+
task(:portability) do
|
11
|
+
rubies = if ENV['RUBIES']
|
12
|
+
ENV['RUBIES'].split(' ')
|
13
|
+
else
|
14
|
+
%w[1.8.7 1.9.2 ree jruby]
|
15
|
+
end
|
16
|
+
rubies.each do |version|
|
17
|
+
rvm_ruby = if ENV['GEMSET']
|
18
|
+
"#{version}@#{ENV['GEMSET']}"
|
19
|
+
else
|
20
|
+
version
|
21
|
+
end
|
22
|
+
system <<-BASH
|
23
|
+
bash -c '
|
24
|
+
source ~/.rvm/scripts/rvm;
|
25
|
+
rvm #{rvm_ruby};
|
26
|
+
echo "--------- version #{rvm_ruby} ----------\n";
|
27
|
+
bundle install;
|
28
|
+
rake spec'
|
29
|
+
BASH
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "guard/resque/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "guard-resque"
|
7
|
+
s.version = Guard::ResqueVersion::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Jacques Crocker", "David Parry"]
|
10
|
+
s.email = ["railsjedi@gmail.com"]
|
11
|
+
s.homepage = 'http://github.com/railsjedi/guard-resque'
|
12
|
+
s.summary = %q{guard gem for resque}
|
13
|
+
s.description = %q{Guard::Resque automatically starts/stops/restarts resque worker}
|
14
|
+
|
15
|
+
s.required_rubygems_version = '>= 1.3.6'
|
16
|
+
s.rubyforge_project = "guard-resque"
|
17
|
+
|
18
|
+
s.add_dependency 'guard', '>= 0.8'
|
19
|
+
s.add_dependency 'resque'
|
20
|
+
|
21
|
+
s.add_development_dependency 'bundler', '~> 1.0.10'
|
22
|
+
s.add_development_dependency 'rspec', '~> 2.5.0'
|
23
|
+
s.add_development_dependency 'guard-rspec', '>= 0.2.0'
|
24
|
+
s.add_development_dependency 'guard-bundler', '>= 0.1.1'
|
25
|
+
|
26
|
+
s.files = `git ls-files`.split("\n")
|
27
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
28
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
29
|
+
s.require_paths = ["lib"]
|
30
|
+
end
|
data/lib/guard-resque.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'guard/resque'
|
data/lib/guard/resque.rb
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'guard'
|
2
|
+
require 'guard/guard'
|
3
|
+
|
4
|
+
module Guard
|
5
|
+
class Resque < Guard
|
6
|
+
|
7
|
+
# Allowable options are:
|
8
|
+
# :environment e.g. 'test'
|
9
|
+
# :task .e.g 'resque:work'
|
10
|
+
# :queue e.g. '*'
|
11
|
+
# :verbose e.g. true
|
12
|
+
# :trace e.g. true
|
13
|
+
# :stop_signal e.g. KILL
|
14
|
+
def initialize(watchers = [], options = {})
|
15
|
+
@options = options
|
16
|
+
@process = nil
|
17
|
+
@pid = nil
|
18
|
+
@stop_signal = options[:stop_signal] || "TERM"
|
19
|
+
super
|
20
|
+
end
|
21
|
+
|
22
|
+
def start
|
23
|
+
stop
|
24
|
+
UI.info "Starting up resque..."
|
25
|
+
@process = IO.popen(cmd)
|
26
|
+
@pid = @process.pid
|
27
|
+
end
|
28
|
+
|
29
|
+
# Called on Ctrl-C signal (when Guard quits)
|
30
|
+
def stop
|
31
|
+
if @process
|
32
|
+
UI.info("Stopping resque...")
|
33
|
+
::Process.kill(@stop_signal, @process.pid)
|
34
|
+
::Process.waitpid(@pid) rescue Errno::ESRCH
|
35
|
+
@process.close
|
36
|
+
@pid = nil
|
37
|
+
UI.info("Stopped process #{@name}")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Called on Ctrl-Z signal
|
42
|
+
# This method should be mainly used for "reload" (really!) actions like reloading passenger/spork/bundler/...
|
43
|
+
def reload
|
44
|
+
UI.info "Restarting resque..."
|
45
|
+
stop
|
46
|
+
start
|
47
|
+
end
|
48
|
+
|
49
|
+
# Called on Ctrl-/ signal
|
50
|
+
# This method should be principally used for long action like running all specs/tests/...
|
51
|
+
def run_all
|
52
|
+
true
|
53
|
+
end
|
54
|
+
|
55
|
+
# Called on file(s) modifications
|
56
|
+
def run_on_change(paths)
|
57
|
+
restart
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
|
62
|
+
def cmd
|
63
|
+
command = "bundle exec rake "
|
64
|
+
|
65
|
+
# environment setting
|
66
|
+
command << "RAILS_ENV=#{@options[:environment]} " if @options[:environment]
|
67
|
+
|
68
|
+
# queue setting
|
69
|
+
command << "QUEUE=#{@options[:queue] || '*'} "
|
70
|
+
|
71
|
+
# verbose setting
|
72
|
+
command << "VVERBOSE=1 " if @options[:verbose]
|
73
|
+
|
74
|
+
# task setting
|
75
|
+
command << "#{@options[:task] || 'resque:work'} "
|
76
|
+
|
77
|
+
# trace setting
|
78
|
+
command << "--trace " if @options[:trace]
|
79
|
+
|
80
|
+
command
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Guard::Resque do
|
4
|
+
subject { Guard::Resque.new }
|
5
|
+
|
6
|
+
describe "start" do
|
7
|
+
before do
|
8
|
+
subject = Guard::Resque.new
|
9
|
+
end
|
10
|
+
|
11
|
+
after do
|
12
|
+
subject.stop
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should create a pid in /tmp/pids" do
|
16
|
+
subject.start
|
17
|
+
Dir.glob("tmp/pids/resque*.pid").should_not be_empty
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: guard-resque
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jacques Crocker
|
9
|
+
- David Parry
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2011-09-29 00:00:00.000000000Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: guard
|
17
|
+
requirement: &2156499200 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0.8'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *2156499200
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: resque
|
28
|
+
requirement: &2156498360 !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *2156498360
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: bundler
|
39
|
+
requirement: &2156496840 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 1.0.10
|
45
|
+
type: :development
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *2156496840
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rspec
|
50
|
+
requirement: &2156494660 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 2.5.0
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *2156494660
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: guard-rspec
|
61
|
+
requirement: &2156492420 !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 0.2.0
|
67
|
+
type: :development
|
68
|
+
prerelease: false
|
69
|
+
version_requirements: *2156492420
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: guard-bundler
|
72
|
+
requirement: &2156490760 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.1.1
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: *2156490760
|
81
|
+
description: Guard::Resque automatically starts/stops/restarts resque worker
|
82
|
+
email:
|
83
|
+
- railsjedi@gmail.com
|
84
|
+
executables: []
|
85
|
+
extensions: []
|
86
|
+
extra_rdoc_files: []
|
87
|
+
files:
|
88
|
+
- .gitignore
|
89
|
+
- CHANGELOG.md
|
90
|
+
- Gemfile
|
91
|
+
- Guardfile
|
92
|
+
- README.markdown
|
93
|
+
- Rakefile
|
94
|
+
- guard-resque.gemspec
|
95
|
+
- lib/guard-resque.rb
|
96
|
+
- lib/guard/resque.rb
|
97
|
+
- lib/guard/resque/templates/Guardfile
|
98
|
+
- lib/guard/resque/version.rb
|
99
|
+
- spec/guard/resque_spec.rb
|
100
|
+
- spec/spec_helper.rb
|
101
|
+
homepage: http://github.com/railsjedi/guard-resque
|
102
|
+
licenses: []
|
103
|
+
post_install_message:
|
104
|
+
rdoc_options: []
|
105
|
+
require_paths:
|
106
|
+
- lib
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
109
|
+
requirements:
|
110
|
+
- - ! '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: 1.3.6
|
119
|
+
requirements: []
|
120
|
+
rubyforge_project: guard-resque
|
121
|
+
rubygems_version: 1.8.6
|
122
|
+
signing_key:
|
123
|
+
specification_version: 3
|
124
|
+
summary: guard gem for resque
|
125
|
+
test_files:
|
126
|
+
- spec/guard/resque_spec.rb
|
127
|
+
- spec/spec_helper.rb
|