class Peak::Routing::Route
Exiting custom code ========¶ ↑
Public Class Methods
handle_frame(frame, config, is_inbound, name)
click to toggle source
# File lib/peak/routing/route.rb, line 659 def self.handle_frame(frame, config, is_inbound, name) initial_chain = is_inbound ? :inbound : :outbound unless @@chains.key? initial_chain return nil end rules = Rules.new(frame, config, name, initial_chain) more = true while more and rules.next_target != :input and rules.next_target != :output and rules.next_target != :drop catch(:new_target) do rules.instance_eval &@@chains[rules.next_target] more = false end end if rules.next_target == :drop or !more return nil end { :output_target => rules.next_target == :output ? rules.destination_port : nil, :frame => rules.frame } end
inbound_chain(&block)
click to toggle source
# File lib/peak/routing/route.rb, line 619 def self.inbound_chain(&block) @@chains[:inbound] = block end
outbound_chain(&block)
click to toggle source
# File lib/peak/routing/route.rb, line 624 def self.outbound_chain(&block) @@chains[:outbound] = block end
reset()
click to toggle source
# File lib/peak/routing/route.rb, line 634 def self.reset @@chains.clear end
side_chain(name, &block)
click to toggle source
# File lib/peak/routing/route.rb, line 629 def self.side_chain(name, &block) @@chains[name] = block end