devserver 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -90,6 +90,21 @@ module Devserver
90
90
  end
91
91
  end
92
92
 
93
+ # exits with error if the specified web server gem is not available
94
+ def gem_error(server)
95
+ if(!server.command_available?)
96
+ puts "ERROR: The #{server.server} gem does not appear to be installed"
97
+ exit(1)
98
+ end
99
+ end
100
+
101
+ # prints out a warning message if the specified web server gem is not available
102
+ def gem_warning(server)
103
+ if(!server.command_available?)
104
+ puts "WARNING: The #{server.server} gem does not appear to be installed"
105
+ end
106
+ end
107
+
93
108
  def print_defaults
94
109
  puts "default_settings:\n"
95
110
  config_keys = @@default_settings.keys.map{|k|k.to_s}
@@ -121,6 +136,7 @@ module Devserver
121
136
  def start
122
137
  rails_error
123
138
  the_server = Devserver::CommandManager.new(options)
139
+ gem_error(the_server)
124
140
  if(the_server.is_port_open?)
125
141
  puts "Another process is running on Port: #{the_server.port}"
126
142
  puts "Running stop command: #{the_server.command('stop')}"
@@ -138,6 +154,7 @@ module Devserver
138
154
  def debug
139
155
  rails_error
140
156
  the_server = Devserver::CommandManager.new(options)
157
+ gem_error(the_server)
141
158
  if(the_server.is_port_open?)
142
159
  puts "Another process is running on Port: #{the_server.port}"
143
160
  puts "Running stop command: #{the_server.command(stop)}"
@@ -150,7 +167,9 @@ module Devserver
150
167
  method_option :pid_file,:default => @@default_settings[:pid_file], :aliases => "-P", :desc => "Web server pid file"
151
168
  def stop
152
169
  rails_error
170
+ gem_error(the_server)
153
171
  the_server = Devserver::CommandManager.new(options)
172
+ gem_error(the_server)
154
173
  the_server.stop_devserver
155
174
  end
156
175
 
@@ -166,6 +185,7 @@ module Devserver
166
185
  def command
167
186
  rails_warning
168
187
  the_server = Devserver::CommandManager.new(options)
188
+ gem_warning(the_server)
169
189
  if(options[:start])
170
190
  puts "start command: #{the_server.command('start')}"
171
191
  end
@@ -11,6 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+ require 'rubygems'
14
15
  require 'socket'
15
16
  require 'timeout'
16
17
 
@@ -111,6 +112,22 @@ module Devserver
111
112
  raise DevserverError, "Unrecognized mode: #{mode}"
112
113
  end
113
114
  end
115
+
116
+ # returns true/false if the gem corresponding to self.server is installed
117
+ #
118
+ # @return [Boolean] whether the gem is installed or not
119
+ def command_available?
120
+ case self.server
121
+ when 'passenger'
122
+ Gem.available?('passenger')
123
+ when 'thin'
124
+ Gem.available?('thin')
125
+ when 'mongrel'
126
+ Gem.available?('mongrel')
127
+ else
128
+ raise DevserverError, "Unrecognized web server: #{self.server}"
129
+ end
130
+ end
114
131
 
115
132
  # check to see if anything is still running on @port
116
133
  #
@@ -132,11 +149,15 @@ module Devserver
132
149
  end
133
150
 
134
151
  def start_devserver(mode = self.mode)
135
- system("#{self.start_command(mode)}")
152
+ if(self.command_available?)
153
+ system("#{self.start_command(mode)}")
154
+ end
136
155
  end
137
156
 
138
157
  def stop_devserver
139
- system("#{self.stop_command}")
158
+ if(self.command_available?)
159
+ system("#{self.stop_command}")
160
+ end
140
161
  end
141
162
 
142
163
  end
@@ -12,5 +12,5 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  module Devserver
15
- VERSION = "0.0.4"
15
+ VERSION = "0.0.5"
16
16
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devserver
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jason Adam Young
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-07 00:00:00 -05:00
18
+ date: 2011-01-16 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency