class ASeriesOfTubes::TubeController
Attributes
params[R]
request[R]
response[R]
Public Class Methods
new(request, response, params = {})
click to toggle source
# File lib/a_series_of_tubes/tube_controller.rb, line 7 def initialize request, response, params = {} @request = request @response = response @params = params.merge request.params end
Public Instance Methods
flash()
click to toggle source
# File lib/a_series_of_tubes/tube_controller.rb, line 47 def flash @flash ||= self.session.flash end
invoke_action(action)
click to toggle source
# File lib/a_series_of_tubes/tube_controller.rb, line 13 def invoke_action action self.send action render action unless @rendered end
redirect_to(url)
click to toggle source
# File lib/a_series_of_tubes/tube_controller.rb, line 18 def redirect_to url prevent_double_render set_rendered self.response.header['location'] = url self.response.status = 302 self.session.store_session self.response end
render(template_name)
click to toggle source
# File lib/a_series_of_tubes/tube_controller.rb, line 27 def render template_name controller_name = self.class.to_s.underscore filename = "#{APP_DIRECTORY}/views/#{controller_name}/#{template_name}.html.erb" render_content ERB.new(File.read(filename)).result(binding), 'text/html' self.session.store_session self.response end
render_content(content, content_type)
click to toggle source
# File lib/a_series_of_tubes/tube_controller.rb, line 34 def render_content content, content_type prevent_double_render set_rendered self.response['Content-Type'] = content_type self.response.write content self.session.store_session self.response end
session()
click to toggle source
# File lib/a_series_of_tubes/tube_controller.rb, line 43 def session @session ||= TubeState::Session.new self.request end
Private Instance Methods
prevent_double_render()
click to toggle source
# File lib/a_series_of_tubes/tube_controller.rb, line 57 def prevent_double_render raise ASeriesOfTubes::DoubleRenderError if @rendered end
set_rendered()
click to toggle source
# File lib/a_series_of_tubes/tube_controller.rb, line 61 def set_rendered @rendered = true end