Sha256: d80662f34304655a1b9c6dc6f52755a396ca0b16ca99da4d5ef39de511d989a0
Contents?: true
Size: 1.71 KB
Versions: 1
Compression:
Stored size: 1.71 KB
Contents
module Raddocs class App < Sinatra::Base set :haml, :format => :html5 set :root, File.join(File.dirname(__FILE__), "..") get "/" do index = JSON.parse(File.read("#{docs_dir}/index.json")) haml :index, :locals => { :index => index } end get "/custom-css/*" do file = "#{docs_dir}/styles/#{params[:splat][0]}" if !File.exists?(file) raise Sinatra::NotFound end content_type :css File.read(file) end get "/*" do file = "#{docs_dir}/#{params[:splat][0]}.json" if !File.exists?(file) raise Sinatra::NotFound end file_content = File.read(file) example = JSON.parse(file_content) example["parameters"] = Parameters.new(example["parameters"]).parse haml :example, :locals => { :example => example } end not_found do "Example does not exist" end helpers do def link_to(name, link) %{<a href="#{request.env["SCRIPT_NAME"]}#{link}">#{name}</a>} end def url_location request.env["SCRIPT_NAME"] end def api_name Raddocs.configuration.api_name end def css_files files = ["#{url_location}/codemirror.css", "#{url_location}/application.css"] if Raddocs.configuration.include_bootstrap files << "#{url_location}/bootstrap.min.css" end Dir.glob(File.join(docs_dir, "styles", "*.css")).each do |css_file| basename = Pathname.new(css_file).basename files << "#{url_location}/custom-css/#{basename}" end files.concat Array(Raddocs.configuration.external_css) files end end def docs_dir Raddocs.configuration.docs_dir end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
raddocs-0.2.0 | lib/raddocs/app.rb |