Class: Takagi::Base
- Extended by:
- MiddlewareManagement, PluginManagement, ReactorManagement, ServerLifecycle
- Defined in:
- lib/takagi/base.rb,
lib/takagi/base/server_lifecycle.rb,
lib/takagi/base/plugin_management.rb,
lib/takagi/base/reactor_management.rb,
lib/takagi/base/middleware_management.rb,
sig/takagi/base.rbs,
sig/takagi/base/server_lifecycle.rbs,
sig/takagi/base/reactor_management.rbs,
sig/takagi/base/middleware_management.rbs
Overview
Base class that every Takagi based app should use.
Provides a Sinatra-like DSL for building CoAP servers with support for:
- Route registration (GET, POST, PUT, DELETE, OBSERVE)
- Middleware stack
- Reactor pattern for observables/observers
- Multi-protocol servers (UDP, TCP)
This class now follows Single Responsibility Principle by delegating specific concerns to focused modules:
- ServerLifecycle: Boot, run, spawn operations
- MiddlewareManagement: Middleware stack configuration
- ReactorManagement: Observable/observer patterns
Direct Known Subclasses
Defined Under Namespace
Modules: MiddlewareManagement, PluginManagement, ReactorManagement, ServerLifecycle
Constant Summary
Constants inherited from Router
Router::DEFAULT_CONTENT_FORMAT
Class Method Summary collapse
-
.core(path, method: :get) {|arg0| ... } ⇒ Object
Configures CoRE Link Format metadata for an existing route.
-
.observable(path, metadata: {}, &block) {|arg0| ... } ⇒ Object
Registers an OBSERVE route in the global router (server-side) Use this to make a resource observable by clients.
-
.router ⇒ Router
Returns the global router instance.
Methods included from ServerLifecycle
boot!, build_servers, instantiate_server, run!, run_servers, spawn!
Methods included from MiddlewareManagement
Methods included from ReactorManagement
reactor, start_reactors, stop_reactors, use_reactor
Methods included from PluginManagement
Methods inherited from Router
#add_route, #all_routes, #build_route_entry, #configure_core, #default_interface, #default_resource_type, #extract_metadata_from_handler, #find_observable, #find_route, #initialize, instance, #link_format_entries, #match_dynamic_route, #normalize_metadata, #observable, reset!, #wrap_block
Constructor Details
This class inherits a constructor from Takagi::Router
Class Method Details
.core(path, method: :get) {|arg0| ... } ⇒ Object
Configures CoRE Link Format metadata for an existing route. Handy when you want to declare handlers and metadata separately (e.g., during boot).
71 72 73 |
# File 'lib/takagi/base.rb', line 71 def self.core(path, method: :get, &block) router.configure_core(method.to_s.upcase, path, &block) end |
.observable(path, metadata: {}, &block) {|arg0| ... } ⇒ Object
Registers an OBSERVE route in the global router (server-side) Use this to make a resource observable by clients
65 66 67 |
# File 'lib/takagi/base.rb', line 65 def self.observable(path, metadata: {}, &block) router.observable(path, metadata: , &block) end |
.router ⇒ Router
Returns the global router instance
46 47 48 |
# File 'lib/takagi/base.rb', line 46 def self.router @router ||= Takagi::Router.instance end |