module SoarSc::Rack::Router::RouteValidation

Public Instance Methods

validate() click to toggle source
# File lib/soar_sc/rack/router/route_validation.rb, line 7
def validate
  validate_method
  validate_path
  validate_action
end
validate_action() click to toggle source
# File lib/soar_sc/rack/router/route_validation.rb, line 30
def validate_action
  unless (@action.respond_to?(:arity) and @action.arity == 1) or (@action.respond_to?(:call) and @action.method(:call).arity == 1)
    raise InvalidActionError, "Invalid action in route #{to_s}"
  end
end
validate_method() click to toggle source
# File lib/soar_sc/rack/router/route_validation.rb, line 13
def validate_method
  unless HttpMethod.valid?(@method)
    raise InvalidMethodError, "Invalid method in route #{to_s}"
  end
end
validate_path() click to toggle source
# File lib/soar_sc/rack/router/route_validation.rb, line 19
def validate_path
  unless @path.is_a?(String)
    raise InvalidPathError, "Invalid path in route #{to_s}"
  end
  components(@path).each do |c|
    if c.start_with?(Route::PARAMETER_PREFIX) and c !~ Route::PARAMETER_VALID_REGEXP
      raise InvalidParameterError, "Invalid path parameter in route #{to_s}"
    end
  end
end