oop_rails_server 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.md +8 -0
- data/lib/oop_rails_server/rails_server.rb +18 -3
- data/lib/oop_rails_server/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c9e054823517aa7b937701217e7cc349d6140d7
|
4
|
+
data.tar.gz: 9b2f63bc076d13fdeefe0ad08fcd82fff4ca6238
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50a5b00e9f12ad296bb12a292deba5e173b8dc99f51387b7375c1914427327e08650f2043ef4b7310c3f7ab6723c069331873068d8cf2805d7369a8851f42607
|
7
|
+
data.tar.gz: 41b3c402d613e50c9866f7c358d64450b56de08fdb3f9ef39276414b555f30a6d5f784dbee6ecb3d30a05af390d76e77eae99caeab0c638fcdbed5dc398d0914
|
data/CHANGES.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# `oop_rails_server` Releases
|
2
2
|
|
3
|
+
## 0.0.13, 6 October 2015
|
4
|
+
|
5
|
+
* A significantly longer timeout (30 seconds, rather than 15) for starting up the Rails server; some versions of JRuby
|
6
|
+
in some environments seem to require this.
|
7
|
+
* Much better error messages when the server fails to start up, or fails verification.
|
8
|
+
* Added a workaround for the fact that Rails 3.1.x requires `rack-cache`, but a new version (1.3.0) was just released
|
9
|
+
that's incompatible with Ruby < 2.x. We now pin `rack-cache` to `< 1.3.0` when using Rails 3.1.x.
|
10
|
+
|
3
11
|
## 0.0.12, 4 October 2015
|
4
12
|
|
5
13
|
* Much better error output if the Rails server fails to start up, and willingness to keep trying if it returns an
|
@@ -201,6 +201,7 @@ gem 'rails'#{rails_version_spec}
|
|
201
201
|
EOS
|
202
202
|
|
203
203
|
f.puts "gem 'i18n', '< 0.7.0'" if RUBY_VERSION =~ /^1\.8\./
|
204
|
+
f.puts "gem 'rack-cache', '< 1.3.0'" if RUBY_VERSION =~ /^1\./
|
204
205
|
end
|
205
206
|
|
206
207
|
run_bundle_install!(:bootstrap)
|
@@ -229,6 +230,12 @@ EOS
|
|
229
230
|
gemfile_contents << "\ngem 'i18n', '< 0.7.0'\n"
|
230
231
|
end
|
231
232
|
|
233
|
+
# Since Rails 3.1.12 was released, a new version of the rack-cache gem, 1.3.0, was released that requires
|
234
|
+
# Ruby 2.0 or above. So, if we're running Rails 3.1.x, we lock the 'rack-cache' gem to an earlier version.
|
235
|
+
if rails_version && rails_version =~ /^3\.1\./
|
236
|
+
gemfile_contents << "\ngem 'rack-cache', '< 1.3.0'\n"
|
237
|
+
end
|
238
|
+
|
232
239
|
# Apparently execjs released a version 2.2.0 that will happily install on Ruby 1.8.7, but which contains some
|
233
240
|
# new-style hash syntax. As a result, we pin the version backwards in this one specific case.
|
234
241
|
gemfile_contents << "\ngem 'execjs', '~> 2.0.0'\n" if RUBY_VERSION =~ /^1\.8\./
|
@@ -283,6 +290,8 @@ EOS
|
|
283
290
|
@server_output_file ||= File.join(rails_root, 'log', 'rails-server.out')
|
284
291
|
end
|
285
292
|
|
293
|
+
START_SERVER_TIMEOUT = 30
|
294
|
+
|
286
295
|
def start_server!
|
287
296
|
output = server_output_file
|
288
297
|
cmd = "bundle exec rails server -p #{port} > '#{output}' 2>&1"
|
@@ -291,7 +300,7 @@ EOS
|
|
291
300
|
server_pid_file = File.join(rails_root, 'tmp', 'pids', 'server.pid')
|
292
301
|
|
293
302
|
start_time = Time.now
|
294
|
-
while Time.now < start_time +
|
303
|
+
while Time.now < start_time + START_SERVER_TIMEOUT
|
295
304
|
if File.exist?(server_pid_file)
|
296
305
|
server_pid = File.read(server_pid_file).strip
|
297
306
|
if server_pid =~ /^(\d{1,10})$/i
|
@@ -299,18 +308,24 @@ EOS
|
|
299
308
|
break
|
300
309
|
end
|
301
310
|
end
|
311
|
+
|
302
312
|
sleep 0.1
|
303
313
|
end
|
314
|
+
|
315
|
+
unless server_pid
|
316
|
+
raise "Unable to start the Rails server even after #{Time.now - start_time} seconds; there seems to be no file at '#{server_pid_file}', or no PID in that file if it does exist. Help!"
|
317
|
+
end
|
304
318
|
end
|
305
319
|
|
306
320
|
def verify_server_and_shut_down_if_fails!
|
307
321
|
begin
|
308
322
|
verify_server!
|
309
323
|
rescue Exception => e
|
324
|
+
say "Verification of Rails server failed:\n #{e.message} (#{e.class.name})\n #{e.backtrace.join("\n ")}"
|
310
325
|
begin
|
311
326
|
stop_server!
|
312
327
|
rescue Exception => e
|
313
|
-
say "WARNING: Verification of server failed, so we tried to stop it, but we couldn't do that. Proceeding, but you may have a Rails server left around anyway
|
328
|
+
say "WARNING: Verification of server failed, so we tried to stop it, but we couldn't do that. Proceeding, but you may have a Rails server left around anyway. The exception from trying to stop the server was:\n #{e.message} (#{e.class.name})\n #{e.backtrace.join("\n ")}"
|
314
329
|
end
|
315
330
|
|
316
331
|
raise
|
@@ -365,11 +380,11 @@ The last #{last_lines.length} lines of this log are:
|
|
365
380
|
sleep 0.1
|
366
381
|
begin
|
367
382
|
data = Net::HTTP.get_response(uri)
|
383
|
+
last_exception = nil
|
368
384
|
rescue Errno::ECONNREFUSED, EOFError => e
|
369
385
|
last_exception = e
|
370
386
|
end
|
371
387
|
|
372
|
-
$stderr.puts "TRYING..."
|
373
388
|
break if data && data.code && data.code.to_s == '200'
|
374
389
|
end
|
375
390
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oop_rails_server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Geweke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|