lib/nanoc3/cli/commands/view.rb in nanoc3-3.2.0b2 vs lib/nanoc3/cli/commands/view.rb in nanoc3-3.2.0b3
- old
+ new
@@ -1,11 +1,11 @@
# encoding: utf-8
usage 'view [options]'
summary 'start the web server that serves static files'
description <<-EOS
-Start the static web server. Unless specified, the web server will run on port 3000 and listen on all IP addresses. Running the autocompiler requires 'adsf' and 'rack'.
+Start the static web server. Unless specified, the web server will run on port 3000 and listen on all IP addresses. Running this static web server requires 'adsf' (not 'asdf'!).
EOS
option :H, :handler, 'specify the handler to use (webrick/mongrel/...)'
option :o, :host, 'specify the host to listen on (default: 0.0.0.0)'
option :p, :port, 'specify the port to listen on (default: 3000)'
@@ -17,12 +17,12 @@
module Nanoc3::CLI::Commands
class View < ::Nanoc3::CLI::Command
def run
+ load_adsf
require 'rack'
- require 'adsf'
# Make sure we are in a nanoc site directory
self.require_site
# Set options
@@ -51,9 +51,33 @@
run Rack::File.new(site.config[:output_dir])
end.to_app
# Run autocompiler
handler.run(app, options_for_rack)
+ end
+
+ protected
+
+ def load_adsf
+ # Load adsf
+ begin
+ require 'adsf'
+ return
+ rescue LoadError
+ $stderr.puts "Could not find the required 'adsf' gem, " \
+ "which is necessary for the view command."
+ end
+
+ # Check asdf
+ begin
+ require 'asdf'
+ $stderr.puts "You appear to have 'asdf' installed, " \
+ "but not 'adsf'. Please install 'adsf' (check the spelling)!"
+ rescue LoadError
+ end
+
+ # Done
+ exit 1
end
end
end