guard-spork 0.1.7 → 0.1.8

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.
@@ -61,6 +61,14 @@ Guard::Spork automatically detect RSpec/Cucumber/Bundler presence but you can di
61
61
  ...
62
62
  end
63
63
 
64
+ To append additional environment variables for rspec and cucumber you can provided a hash to rspec_env/cucumber_env:
65
+
66
+ guard 'spork', :cucumber_env => {'RAILS_ENV' => 'cucumber'}, :rspec_env => {'RAILS_ENV' => 'test'} do
67
+ ...
68
+ end
69
+
70
+ <b>IMPORTANT: when using ruby 1.8.x please set the env for both rspec and cucumber as they will overwrite each other and the system env's</b>
71
+
64
72
  Available options:
65
73
 
66
74
  :wait => 30 # Seconds to wait for the server to starts, default: 20
@@ -69,6 +77,8 @@ Available options:
69
77
  :bundler => false # Don't use "bundle exec"
70
78
  :rspec_port => 1234 # Default: 8989
71
79
  :cucumber_port => 4321 # Default: 8990
80
+ :rspec_env
81
+ :cucumber_env
72
82
 
73
83
  == Common troubleshooting
74
84
 
@@ -7,10 +7,9 @@ module Guard
7
7
  autoload :Runner, 'guard/spork/runner'
8
8
  attr_accessor :runner
9
9
 
10
- def initialize(watchers = [], options = {})
10
+ def initialize(watchers=[], options={})
11
11
  super
12
12
  @runner = Runner.new(options)
13
-
14
13
  end
15
14
 
16
15
  def start
@@ -33,4 +32,4 @@ module Guard
33
32
  end
34
33
 
35
34
  end
36
- end
35
+ end
@@ -5,11 +5,13 @@ module Guard
5
5
  class Runner
6
6
  attr_accessor :options
7
7
 
8
- def initialize(options = {})
8
+ def initialize(options={})
9
9
  options[:wait] ||= 20 # seconds
10
10
  options[:rspec_port] ||= 8989
11
11
  options[:cucumber_port] ||= 8990
12
- @options = options
12
+ options[:rspec_env] ||= nil
13
+ options[:cucumber_env] ||= nil
14
+ @options = options
13
15
  @children = {}
14
16
 
15
17
  Signal.trap('CHLD', self.method(:reap_children))
@@ -17,27 +19,37 @@ module Guard
17
19
 
18
20
  def launch_sporks(action)
19
21
  UI.info "#{action.capitalize}ing Spork for #{sporked_gems} ", :reset => true
20
- spawn_child(spork_command("rspec")) if rspec?
21
- spawn_child(spork_command("cucumber")) if cucumber?
22
+ spawn_child(options[:rspec_env], spork_command("rspec")) if rspec?
23
+ spawn_child(options[:cucumber_env], spork_command("cucumber")) if cucumber?
22
24
  verify_launches(action)
23
25
  end
24
26
 
25
27
  def kill_sporks
26
- UI.debug "Killing sporks #{spork_pids.join(', ')}"
28
+ UI.debug "Killing Spork servers with PID: #{spork_pids.join(', ')}"
27
29
  spork_pids.each { |pid| Process.kill("KILL", pid) }
28
30
  end
29
31
 
30
32
  private
31
- def spawn_child(cmd)
33
+
34
+ def spawn_child(env, cmd)
32
35
  pid = fork
33
36
  raise "Fork failed." if pid == -1
34
37
 
35
38
  unless pid
36
39
  ignore_control_signals
37
- exec(cmd)
40
+ if env
41
+ if RUBY_VERSION > "1.9"
42
+ exec(env, cmd)
43
+ else
44
+ env.each { |key, value| ENV[key] = value }
45
+ exec(cmd)
46
+ end
47
+ else
48
+ exec(cmd)
49
+ end
38
50
  end
39
51
 
40
- UI.debug "Spawned spork #{pid} ('#{cmd}')"
52
+ UI.debug "Spawned Spork server #{pid} ('#{cmd}')"
41
53
  @children[pid] = cmd
42
54
  pid
43
55
  end
@@ -80,8 +92,7 @@ module Guard
80
92
  when "rspec"
81
93
  cmd_parts << "-p #{options[:rspec_port]}"
82
94
  when "cucumber"
83
- cmd_parts << "cu"
84
- cmd_parts << "-p #{options[:cucumber_port]}"
95
+ cmd_parts << "cu -p #{options[:cucumber_port]}"
85
96
  end
86
97
 
87
98
  cmd_parts.join(" ")
@@ -96,12 +107,12 @@ module Guard
96
107
  rescue Errno::ECONNREFUSED
97
108
  next
98
109
  end
99
- UI.info "Spork for #{sporked_gems} successfully #{action}ed", :reset => true
110
+ UI.info "Spork server for #{sporked_gems} successfully #{action}ed", :reset => true
100
111
  Notifier.notify "#{sporked_gems} successfully #{action}ed", :title => "Spork", :image => :success
101
112
  return true
102
113
  end
103
114
  UI.reset_line # workaround before Guard::UI update
104
- UI.error "Could not #{action} Spork for #{sporked_gems}. Make sure you can use it manually first."
115
+ UI.error "Could not #{action} Spork server for #{sporked_gems}. Make sure you can use it manually first."
105
116
  Notifier.notify "#{sporked_gems} NOT #{action}ed", :title => "Spork", :image => :failed
106
117
  end
107
118
 
@@ -1,7 +1,7 @@
1
- guard 'spork' do
1
+ guard 'spork', :cucumber_env => { 'RAILS_ENV' => 'cucumber' }, :rspec_env => { 'RAILS_ENV' => 'test' } do
2
2
  watch('config/application.rb')
3
3
  watch('config/environment.rb')
4
- watch(%r{^config/environments/.*\.rb$})
5
- watch(%r{^config/initializers/.*\.rb$})
4
+ watch(%r{^config/environments/.+\.rb$})
5
+ watch(%r{^config/initializers/.+\.rb$})
6
6
  watch('spec/spec_helper.rb')
7
7
  end
@@ -1,5 +1,5 @@
1
1
  module Guard
2
2
  module SporkVersion
3
- VERSION = "0.1.7"
3
+ VERSION = "0.1.8"
4
4
  end
5
- end
5
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-spork
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 7
10
- version: 0.1.7
9
+ - 8
10
+ version: 0.1.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - Thibaud Guillaume-Gentil
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-14 00:00:00 +02:00
18
+ date: 2011-04-17 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -62,8 +62,7 @@ dependencies:
62
62
  segments:
63
63
  - 1
64
64
  - 0
65
- - 12
66
- version: 1.0.12
65
+ version: "1.0"
67
66
  type: :development
68
67
  version_requirements: *id003
69
68
  - !ruby/object:Gem::Dependency
@@ -74,12 +73,11 @@ dependencies:
74
73
  requirements:
75
74
  - - ~>
76
75
  - !ruby/object:Gem::Version
77
- hash: 27
76
+ hash: 9
78
77
  segments:
79
78
  - 2
80
79
  - 5
81
- - 0
82
- version: 2.5.0
80
+ version: "2.5"
83
81
  type: :development
84
82
  version_requirements: *id004
85
83
  - !ruby/object:Gem::Dependency
@@ -90,15 +88,14 @@ dependencies:
90
88
  requirements:
91
89
  - - ~>
92
90
  - !ruby/object:Gem::Version
93
- hash: 23
91
+ hash: 15
94
92
  segments:
95
93
  - 0
96
94
  - 2
97
- - 0
98
- version: 0.2.0
95
+ version: "0.2"
99
96
  type: :development
100
97
  version_requirements: *id005
101
- description: Guard::Spork automatically manage Spork DRb servers
98
+ description: Guard::Spork automatically manage Spork DRb servers.
102
99
  email:
103
100
  - thibaud@thibaud.me
104
101
  executables: []
@@ -128,10 +125,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
128
125
  requirements:
129
126
  - - ">="
130
127
  - !ruby/object:Gem::Version
131
- hash: 3
128
+ hash: 57
132
129
  segments:
133
- - 0
134
- version: "0"
130
+ - 1
131
+ - 8
132
+ - 7
133
+ version: 1.8.7
135
134
  required_rubygems_version: !ruby/object:Gem::Requirement
136
135
  none: false
137
136
  requirements: