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 Ronn::Server.new
to create a Rack app. See the config.ru file in the root of the Ronn
distribution for example usage.
Ronn::Server.run
starts a server on port
Public Class Methods
new(files, options={})
click to toggle source
# File lib/ronn/server.rb 15 def self.new(files, options={}) 16 files = Dir[files] if files.respond_to?(:to_str) 17 raise ArgumentError, "no files" if files.empty? 18 Sinatra.new do 19 set :show_exceptions, true 20 set :public, File.expand_path(__FILE__, '../templates') 21 set :static, false 22 set :views, File.expand_path(__FILE__, '../templates') 23 24 get '/' do 25 files.map do |f| 26 base = File.basename(f, '.ronn') 27 "<li><a href='./#{base}.html'>#{escape_html(base)}</a></li>" 28 end 29 end 30 31 def styles 32 params[:styles] ||= params[:style] 33 case 34 when params[:styles].respond_to?(:to_ary) 35 params[:styles] 36 when params[:styles] 37 params[:styles].split(/[, ]+/) 38 else 39 [] 40 end 41 end 42 43 files.each do |file| 44 basename = File.basename(file, '.ronn') 45 46 get "/#{basename}.html" do 47 options = options.merge(:styles => styles) 48 %w[date manual organization].each do |attribute| 49 next if !params[attribute] 50 options[attribute] = params[attribute] 51 end 52 Ronn::Document.new(file, options).to_html 53 end 54 get "/#{basename}.roff" do 55 content_type 'text/plain+roff' 56 Ronn::Document.new(file, options.dup).to_roff 57 end 58 end 59 end 60 end
run(files, options={})
click to toggle source
# File lib/ronn/server.rb 62 def self.run(files, options={}) 63 new(files, options).run!( 64 :server => %w[mongrel thin webrick], 65 :port => 1207, 66 :logging => true 67 ) 68 end
Public Instance Methods
styles()
click to toggle source
# File lib/ronn/server.rb 31 def styles 32 params[:styles] ||= params[:style] 33 case 34 when params[:styles].respond_to?(:to_ary) 35 params[:styles] 36 when params[:styles] 37 params[:styles].split(/[, ]+/) 38 else 39 [] 40 end 41 end