Methods

Class/Module Index [+]

Quicksearch

Nanoc::CLI::Commands::View

Public Instance Methods

run() click to toggle source
# File lib/nanoc/cli/commands/view.rb, line 16
def run
  load_adsf
  require 'rack'

  # Make sure we are in a nanoc site directory
  self.require_site

  # Set options
  options_for_rack = {
    :Port      => (options[:port] || 3000).to_i,
    :Host      => (options[:host] || '0.0.0.0')
  }

  # Guess which handler we should use
  unless handler = Rack::Handler.get(options[:handler])
    begin
      handler = Rack::Handler::Mongrel
    rescue LoadError => e
      handler = Rack::Handler::WEBrick
    end
  end

  # Build app
  site = self.site
  app = Rack::Builder.new do
    use Rack::CommonLogger
    use Rack::ShowExceptions
    use Rack::Lint
    use Rack::Head
    use Adsf::Rack::IndexFileFinder, :root => site.config[:output_dir]
    run Rack::File.new(site.config[:output_dir])
  end.to_app

  # Run autocompiler
  handler.run(app, options_for_rack)
end

Protected Instance Methods

load_adsf() click to toggle source
# File lib/nanoc/cli/commands/view.rb, line 55
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

[Validate]

Generated with the Darkfish Rdoc Generator 2.