Module Ronn::Server
In: lib/ronn/server.rb

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

Methods

new   run   styles  

Public Class methods

[Source]

    # File lib/ronn/server.rb, line 15
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

[Source]

    # File lib/ronn/server.rb, line 62
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

[Source]

    # File lib/ronn/server.rb, line 31
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

[Validate]