module Getto::Roda::HttpErrorHelper
Public Instance Methods
error(code, name, &block)
click to toggle source
# File lib/getto/roda/http_error_helper.rb, line 4 def error(code, name, &block) error_class_name = :"E#{code}" unless self.const_defined? error_class_name self.const_set(error_class_name, Class.new(self).tap{|klass| klass.class_eval{ define_method(:status){code} } }) end self.singleton_class.class_eval do define_method(:"#{name}!") do |*args| args.unshift ":" unless args.empty? raise self.const_get(error_class_name), "#{name}#{args.join " "}" end end end