Sha256: f902b42bc6e1f515f075a5f1850dd3254ac8e7dc1a88b9522e55a0e52634ce76
Contents?: true
Size: 1.06 KB
Versions: 5
Compression:
Stored size: 1.06 KB
Contents
module ShamRack module Registry def mount(rack_app, address, port = nil) port ||= Net::HTTP.default_port registry[[address, port]] = rack_app end def unmount_all registry.clear end def at(address, port = nil, &block) if block mount(block, address, port) else Registrar.new(address, port) end end def application_for(address, port = nil) port ||= Net::HTTP.default_port registry[[address, port]] end private def registry @registry ||= {} end end extend Registry class Registrar def initialize(address, port = nil) @address = address @port = port end def rackup(&block) require "rack" app = Rack::Builder.new(&block).to_app ShamRack.mount(app, @address, @port) end def sinatra(&block) require "sinatra/base" sinatra_app = Class.new(Sinatra::Base) sinatra_app.class_eval(&block) ShamRack.mount(sinatra_app.new, @address, @port) end end end
Version data entries
5 entries across 5 versions & 2 rubygems