Module: NuHttp

Defined in:
lib/nuhttp/app.rb,
lib/nuhttp.rb,
lib/nuhttp/router.rb,
lib/nuhttp/server.rb,
lib/nuhttp/builder.rb,
lib/nuhttp/context.rb,
lib/nuhttp/version.rb,
lib/nuhttp/rack_port.rb,
lib/nuhttp/herb_renderer.rb

Overview

rbs_inline: enabled

Defined Under Namespace

Classes: App, Builder, Context, EmptyBinding, Error, HerbRenderer, RackPort, Request, Response, Router, Server

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.app(&block) ⇒ Object

Entrypoint to define a NuHttp app. If a block is given, a NuHttp::Builder is yielded. If not, a bare builder will be returned.



17
18
19
20
21
22
# File 'lib/nuhttp.rb', line 17

def self.app(&block)
  builder = Builder.new
  return builder if block == nil
  block.call(builder)
  builder.build
end

.ractor_app(&block) ⇒ Object

Entrypoint to define a Ractor-compatible NuHttp app. Note that many features will be restricted in Ractor mode. See Ruby documentation for details on Ractor limitations.

Raises:

  • (ArgumentError)


28
29
30
31
32
33
34
35
# File 'lib/nuhttp.rb', line 28

def self.ractor_app(&block)
    # Ractor-compatible apps must be frozen at the time of creation
  raise ArgumentError if block == nil

  builder = Builder.new(ractor_compat: true)
  block.call(builder)
  builder.build
end