2010-03-02 17:02:03 +03:00
|
|
|
YARD::Sinatra
|
|
|
|
=============
|
|
|
|
|
|
|
|
This plugin adds [Sinatra](http://sinatrarb.com) routes to [YARD](http://yardoc.org/) output.
|
|
|
|
|
|
|
|
Usage
|
|
|
|
-----
|
|
|
|
|
2011-08-18 00:23:38 +04:00
|
|
|
Install via rubygems:
|
2010-03-02 17:02:03 +03:00
|
|
|
|
|
|
|
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
|
2010-06-25 02:53:11 +04:00
|
|
|
|
|
|
|
# Error 404 Page Not Found
|
|
|
|
not_found do
|
|
|
|
haml :'404'
|
|
|
|
end
|
2010-03-02 17:02:03 +03:00
|
|
|
|
|
|
|
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
|
2010-09-03 14:33:49 +04:00
|
|
|
|
|
|
|
Thanks
|
|
|
|
------
|
|
|
|
|
2010-09-03 14:34:09 +04:00
|
|
|
* Ryan Sobol for implementing `not_found` documentation.
|
2010-09-03 14:33:49 +04:00
|
|
|
* Loren Segal for making it seamlessly work as YARD plugin.
|
|
|
|
Well, and for YARD.
|