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
r(events, mapping = {})
Alias for: route
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