Sha256: f22d6348b4b1cfe7f71cd6452c5bd5cf2b1d47c8637ca785354fa6d7a74acfdc
Contents?: true
Size: 1.66 KB
Versions: 3
Compression:
Stored size: 1.66 KB
Contents
require 'sinatra/base' require 'songbooks/controllers/songs_controller' require 'songbooks/view_helper' module Songbooks class Server < Sinatra::Base include Sinatra::Prawn::Helpers configure do enable :sessions set :views, Songbooks.root.join('app', 'views').to_s set :public_folder, Songbooks.root.join('public').to_s set :prawn, { :page_layout => :portrait, :page_size => 'A4' } end get '/' do haml :application end get '/songs.json' do controller = Songbooks::Controllers::SongsController.new(params) controller.index controller.resulting_instance_variables.each do |var_name| instance_variable_set(var_name, controller.instance_variable_get(var_name)) end jbuilder controller.template end get '/songs/:identifier.json' do controller = Songbooks::Controllers::SongsController.new(params) controller.show controller.resulting_instance_variables.each do |var_name| instance_variable_set(var_name, controller.instance_variable_get(var_name)) end jbuilder controller.template end post '/songbook' do @params = JSON.parse(request.body.read) session[:songbook] = params['songs'] end get '/songbook.pdf' do controller = Songbooks::Controllers::SongsController.new(params, session) controller.generate controller.resulting_instance_variables.each do |var_name| instance_variable_set(var_name, controller.instance_variable_get(var_name)) end content_type 'application/pdf' prawn :songbook end get '/static/*' do haml params['splat'].first.to_sym end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
songbooks-0.1.2 | lib/songbooks/server.rb |
songbooks-0.1.1 | lib/songbooks/server.rb |
songbooks-0.1.0 | lib/songbooks/server.rb |