class SanaRouter
Sana Router
Public Class Methods
new(default_controller = nil)
click to toggle source
constructor @param [SanaController] default_controller default scope controller
# File lib/sana_router.rb, line 6 def initialize(default_controller = nil) @default_controller = default_controller @controller = @default_controller @route = {} @mapping = {} end
Public Instance Methods
controller(controller) { || ... }
click to toggle source
set controller context @param [SanaController] controller target controller @yield controller context block
# File lib/sana_router.rb, line 71 def controller(controller) @controller = controller yield if block_given? @controller = @default_controller end
draw(&block)
click to toggle source
execute register methods in instance context @yield instance_exec context
# File lib/sana_router.rb, line 64 def draw(&block) instance_exec &block end
events()
click to toggle source
router events @example with Sana
sana = Sana.new(router.events)
@return [SanaRouter::Events] events
# File lib/sana_router.rb, line 81 def events @events ||= Events.new(@route, @mapping, @load_controller, @unload_controller, @default_controller) end
load()
click to toggle source
register SHIORI load() route to controller @example register to specific controller
router.draw do controller DLController do load end end
# File lib/sana_router.rb, line 47 def load @load_controller = @controller end
route(events, mapping = {})
click to toggle source
register event route to controller @param [Symbol, Array<Symbol>] events event names @param [Hash<Symbol, Integer>] mapping request argument mappings @example register to various controllers
router.draw do # register to specific controller controller BootController do route [:OnBoot, :OnFirstBoot] end controller CloseController do route [:OnClose, :OnCloseAll] end # register to default controller route :OnSecondChange end
@example mapping usage
route :OnBoot, {shell_name: 0, halted: 6, halted_ghost_name: 7} # mapping for Reference0, 6 and 7
# File lib/sana_router.rb, line 30 def route(events, mapping = {}) Array(events).each do |method| @route[method.to_sym] = @controller @mapping[method.to_sym] = mapping end return end
Also aliased as: r
unload()
click to toggle source
register SHIORI unload() route to controller @example register to specific controller
router.draw do controller DLController do unload end end
# File lib/sana_router.rb, line 58 def unload @unload_controller = @controller end