devserver 0.0.4 → 0.0.5

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