class Quince::SinatraMiddleware
Public Class Methods
new()
click to toggle source
# File lib/quince_sinatra.rb, line 13 def initialize Quince.underlying_app = Class.new(Sinatra::Base) do configure :development do if Object.const_defined? "Sinatra::Reloader" register Sinatra::Reloader dont_reload __FILE__ also_reload $0 end end use Rack::JSONBodyParser set :public_folder, File.join(File.dirname(File.expand_path($0)), "public") end end
Private Class Methods
routes()
click to toggle source
# File lib/quince_sinatra.rb, line 45 def self.routes @routes ||= {} end
Public Instance Methods
create_route_handler(verb:, route:, component: nil, &blck)
click to toggle source
# File lib/quince_sinatra.rb, line 27 def create_route_handler(verb:, route:, component: nil, &blck) meth = case verb when :POST, :post :post when :GET, :get :get else raise "invalid verb" end handler = component ? ->(_) { component } : blck Quince::SinatraMiddleware.send(:routes)[[verb, route]] = handler Quince.underlying_app.public_send meth, route do handler = Quince::SinatraMiddleware.send(:routes)[[verb, route]] Quince.to_html(handler.call(params)) end end