class ASeriesOfTubes::Tubes::Tuber

Constants

METHODS

Attributes

tubes[R]

Public Class Methods

new() click to toggle source
# File lib/a_series_of_tubes/tubes/tuber.rb, line 8
def initialize
  @tubes = []
end

Public Instance Methods

add_tube(pattern, method, controller, action) click to toggle source
# File lib/a_series_of_tubes/tubes/tuber.rb, line 18
def add_tube pattern, method, controller, action
  tube = Tubes::Tube.new pattern, method, controller, action
  self.tubes << tube
end
draw(&tubes) click to toggle source
# File lib/a_series_of_tubes/tubes/tuber.rb, line 23
def draw &tubes
  self.instance_eval &tubes
end
match(request) click to toggle source
# File lib/a_series_of_tubes/tubes/tuber.rb, line 27
def match request
  self.tubes.find { |tube| tube.matches? request }
end
run(request, response) click to toggle source
# File lib/a_series_of_tubes/tubes/tuber.rb, line 31
def run request, response
  tube = match request
  tube ? tube.run(request, response) : not_found(response)
end

Private Instance Methods

not_found(response) click to toggle source
# File lib/a_series_of_tubes/tubes/tuber.rb, line 38
def not_found response
  response.status = 404
  response.write "Page Not Found"
end