Sha256: cca4caf637924ad6ffe85a74297dfc8b03ef757e656410cd0cc98a403b1c2614

Contents?: true

Size: 1.05 KB

Versions: 17

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

# Released under the MIT License.
# Copyright, 2017-2023, by Samuel Williams.

require 'async/http/server'

require 'protocol/http/middleware/builder'
require 'protocol/http/content_encoding'

require 'async/http/cache'

require_relative 'middleware/verbose'
require 'protocol/rack'

module Falcon
	# A server listening on a specific endpoint, hosting a specific middleware.
	class Server < Async::HTTP::Server
		# Wrap a rack application into a middleware suitable the server.
		# @parameter rack_app [Proc | Object] A rack application/middleware.
		# @parameter verbose [Boolean] Whether to add the {Verbose} middleware.
		# @parameter cache [Boolean] Whether to add the {Async::HTTP::Cache} middleware.
		def self.middleware(rack_app, verbose: false, cache: true)
			::Protocol::HTTP::Middleware.build do
				if verbose
					use Middleware::Verbose
				end
				
				if cache
					use Async::HTTP::Cache::General
				end
				
				use ::Protocol::HTTP::ContentEncoding
				use ::Protocol::Rack::Adapter
				
				run rack_app
			end
		end
	end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
falcon-0.48.3 lib/falcon/server.rb
falcon-0.48.2 lib/falcon/server.rb
falcon-0.48.1 lib/falcon/server.rb
falcon-0.48.0 lib/falcon/server.rb
falcon-0.47.10 lib/falcon/server.rb
falcon-0.47.9 lib/falcon/server.rb
falcon-0.47.8 lib/falcon/server.rb
falcon-0.47.7 lib/falcon/server.rb
falcon-0.47.1 lib/falcon/server.rb
falcon-0.47.0 lib/falcon/server.rb
falcon-0.46.1 lib/falcon/server.rb
falcon-0.46.0 lib/falcon/server.rb
falcon-0.45.2 lib/falcon/server.rb
falcon-0.45.1 lib/falcon/server.rb
falcon-0.45.0 lib/falcon/server.rb
falcon-0.44.0 lib/falcon/server.rb
falcon-0.43.0 lib/falcon/server.rb