Skip to content
This repository has been archived by the owner on Oct 19, 2021. It is now read-only.

Latest commit

 

History

History
50 lines (36 loc) · 996 Bytes

README.md

File metadata and controls

50 lines (36 loc) · 996 Bytes

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