Provide basic integration for using Yaks in sinatra. It gives you a top level configure_yaks
method, and a yaks
helper for use in routes.
This will register all media types known to Yaks, make sure the right one is picked based on the Accept
header, and it will put the correct Content-Type
header on the response.
In a classic Sinatra app, you use it like so:
require 'sinatra'
require 'yaks-sinatra'
configure_yaks do
# Yaks configuration as used in Yaks.new do ; ... ; end
end
class RootMapper < Yaks::Mapper
link :self, '/'
link :posts, '/posts'
end
class PostMapper < Yaks::Mapper
attributes :title, :body, :date
has_one :author
end
get '/' do
yaks nil, mapper: RootMapper
end
get '/posts' do
yaks Post.all
end
In a modular Sinatra app, you need to register the extension explicitly:
require 'sinatra/base'
require 'yaks-sinatra'
class MyApp < Sinatra::Base
register Yaks::Sinatra
configure_yaks do
# ...
end
# ...
end