Class: Router

Inherits:
Rad::Conveyors::Processor show all
Defined in:
lib/rad/router/processors/router.rb

Instance Attribute Summary

Attributes inherited from Rad::Conveyors::Processor

#next_processor

Instance Method Summary collapse

Methods inherited from Rad::Conveyors::Processor

inspect

Constructor Details

#initialize(next_processor, class_variable = :class, method_variable = :method) ⇒ Router

Returns a new instance of Router.



6
7
8
9
# File 'lib/rad/router/processors/router.rb', line 6

def initialize next_processor, class_variable = :class, method_variable = :method
  super(next_processor)
  @class_variable, @method_variable = class_variable, method_variable
end

Instance Method Details

#callObject



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/rad/router/processors/router.rb', line 11

def call
  halt = catch :halt do
    if workspace[@class_variable].blank? or workspace[@method_variable].blank?
      klass, method, params = router.decode workspace.path, workspace.params
      workspace[@class_variable], workspace[@method_variable], workspace.params = klass, method, params
    end

    nil
  end

  next_processor.call unless halt
end