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 ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
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
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in guard-resque.gemspec
4
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,10 @@
1
+ guard 'bundler' do
2
+ watch(/^Gemfile/)
3
+ watch(/^.+\.gemspec/)
4
+ end
5
+
6
+ guard 'rspec', :version => 2 do
7
+ watch(/^spec\/.*_spec\.rb/)
8
+ watch(/^lib\/(.*)\.rb/) { |m| "spec/#{m[1]}_spec.rb" }
9
+ watch(/^spec\/spec_helper\.rb/) { "spec" }
10
+ end
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
@@ -0,0 +1 @@
1
+ require 'guard/resque'
@@ -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,4 @@
1
+ guard 'resque', :environment => 'development' do
2
+ watch(%r{^app/(.+)\.rb})
3
+ watch(%r{^lib/(.+)\.rb})
4
+ end
@@ -0,0 +1,5 @@
1
+ module Guard
2
+ module ResqueVersion
3
+ VERSION = "0.0.1"
4
+ end
5
+ 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
@@ -0,0 +1,10 @@
1
+ require 'rspec'
2
+ require 'guard/resque'
3
+
4
+ ENV["GUARD_ENV"] = 'test'
5
+
6
+ RSpec.configure do |config|
7
+ config.color_enabled = true
8
+ config.filter_run :focus => true
9
+ config.run_all_when_everything_filtered = true
10
+ end
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