Class: Wayfarer::Middleware::Router

Inherits:
Object
  • Object
show all
Defined in:
lib/wayfarer/middleware/router.rb

Defined Under Namespace

Modules: API

Instance Method Summary collapse

Instance Method Details

#call(task) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/wayfarer/middleware/router.rb', line 37

def call(task)
  router = task.job.class.router
  url = Addressable::URI.parse(task.url)

  case result = router.invoke(url, task.job.steer)
  when Routing::Result::Mismatch
    return
  when Routing::Result::Match
    task..action = result.action
    task..params = ActiveSupport::HashWithIndifferentAccess.new(result.params)
  end

  yield if block_given?
end