Display sinatra routes in yard documentation.
Перейти к файлу
Konstantin Haase 22688f61ec more rubies 2011-08-17 22:36:33 +02:00
lib add not_found handler to legacy parser, so it works on ruby 1.8 2010-06-25 19:35:29 +02:00
spec Added parsing support for "NOT_FOUND" error handler 2010-06-24 17:49:54 -05:00
.gitignore Added a .gitignore 2010-06-24 17:48:05 -05:00
.travis.yml more rubies 2011-08-17 22:36:33 +02:00
Gemfile add rake to gemfile 2011-08-17 22:36:19 +02:00
Gemfile.lock add a Gemfile 2011-08-17 22:24:24 +02:00
LICENSE added license 2010-05-02 12:56:31 +02:00
README.md no more bigband 2011-08-17 22:23:38 +02:00
Rakefile add `rake test` 2011-08-17 22:24:09 +02:00
yard-sinatra.gemspec prep for 1.0 2011-08-17 22:24:34 +02:00

README.md

YARD::Sinatra

This plugin adds Sinatra routes to YARD output.

Usage

Install via rubygems:

gem install yard-sinatra

Add comments to your routes (well, that's optional):

require "sinatra/base"
require "user"

class ExampleApp < Sinatra::Base

  # Settings for a given user
  #
  # @param [User] some user
  # @return [Hash] settings for that user
  def settings(some_user)
    raise NotImplementedMethod
  end
  
  # Displays a settings page for the current user
  #
  # @see ExampleApp#settings
  get "/settings" do
    haml :settings, {}, :settings => settings(current_user)
  end
  
  # Error 404 Page Not Found
  not_found do
    haml :'404'
  end

end

The you're ready to go:

yardoc example_app.rb

YARD will automatically detect the yard-sinatra plugin and load it.

Other use cases

As with yard, this can be used for other means besides documentation. For instance, you might want a list of all routes defined in a given list of files without executing those files:

require "yard/sinatra"
YARD::Registry.load Dir.glob("lib/**/*.rb")
YARD::Sinatra.routes.each do |route|
  puts route.http_verb, route.http_path, route.file, route.docstring
end

Thanks

  • Ryan Sobol for implementing not_found documentation.
  • Loren Segal for making it seamlessly work as YARD plugin. Well, and for YARD.