module Ronn::Server
Ronn HTTP server. Serves a list of .ronn files as HTML. The options Hash is passed to Ronn::Document.new on each invocation.
Use ::new to create a Rack app. See the config.ru file in the root of the Ronn distribution for example usage.
::run starts a server on port 1207.
Public Class Methods
new(files, options = {})
click to toggle source
# File lib/ronn/server.rb, line 14 def self.new(files, options = {}) files = Dir[files] if files.respond_to?(:to_str) raise ArgumentError, 'no files' if files.empty? Sinatra.new do set :show_exceptions, true set :public_dir, File.expand_path(__FILE__, '../templates') set :static, false set :views, File.expand_path(__FILE__, '../templates') get '/' do files.map do |f| base = File.basename(f, '.ronn') "<li><a href='./#{base}.html'>#{escape_html(base)}</a></li>" end end options[:styles] ||= options[:style] my_styles = if options[:styles].respond_to?(:to_ary) options[:styles] elsif options[:styles] options[:styles].split(/[, ]+/) else [] end files.each do |file| basename = File.basename(file, '.ronn') get "/#{basename}.html" do options = options.merge(styles: my_styles) %w[date manual organization].each do |attribute| next unless params[attribute] options[attribute] = params[attribute] end Ronn::Document.new(file, options).to_html end get "/#{basename}.roff" do content_type 'text/plain+roff' Ronn::Document.new(file, options.dup).to_roff end end end end
run(files, options = {})
click to toggle source
# File lib/ronn/server.rb, line 58 def self.run(files, options = {}) port_number = options['port'] || 1207 new(files, options).run!( server: %w[mongrel thin webrick], port: port_number, logging: true ) end