Sha256: d30929cce3028a2126ba11bc30cc0b521f9067c270d65d089a2b2bf3ae19ff73
Contents?: true
Size: 1.09 KB
Versions: 4
Compression:
Stored size: 1.09 KB
Contents
module Rasti module Web class Controller extend Forwardable def_delegators :request, :params, :session def_delegator :response, :redirect, :redirect_to attr_reader :request, :response, :render def initialize(request, response, render) @request = request @response = response @render = render end def execute(action_name) public_send action_name rescue => ex if respond_to? ex.class.name public_send ex.class.name, ex else raise ex end end class << self def action(action_name) raise "Undefined action '#{action_name}' in #{name}" unless instance_methods.include? action_name.to_sym Endpoint.new do |req, res, render| new(req, res, render).execute(action_name) end end alias_method :>>, :action def rescue_from(exception_class, &block) define_method exception_class.name do |ex| instance_exec ex, &block end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
rasti-web-0.0.4 | lib/rasti/web/controller.rb |
rasti-web-0.0.3 | lib/rasti/web/controller.rb |
rasti-web-0.0.2 | lib/rasti/web/controller.rb |
rasti-web-0.0.1 | lib/rasti/web/controller.rb |