/**
  * @param Rsc_Http_Parameters $method
  * @return bool
  */
 public function handleRequest(Rsc_Http_Parameters $method)
 {
     /** @var Rsc_Mvc_Module $module */
     if (!$method->has('route')) {
         return false;
     }
     $route = $method->get('route');
     $module = isset($route['module']) ? $route['module'] : $this->environment->getConfig()->get('default_module');
     $action = isset($route['action']) ? $route['action'] : 'index';
     if (null !== ($module = $this->environment->getModule(strtolower($module)))) {
         $controller = $module->getController();
         if ($controller !== null && method_exists($controller, $action = sprintf('%sAction', $action))) {
             return call_user_func_array(array($controller, $action), array($controller->getRequest()));
         }
     }
     return false;
 }
 /**
  * Do validation
  * @param Rsc_Http_Parameters $method
  */
 protected function doValidation(Rsc_Http_Parameters $method)
 {
     if (empty($this->rules)) {
         return;
     }
     /** @var Rsc_Form_Rule_Interface $rule */
     foreach ($this->rules as $field => $rules) {
         if (!is_array($this->rules[$field])) {
             $rules = array($rules);
         }
         foreach ($rules as $rule) {
             if ($method->has($field)) {
                 if (!$rule->validate($method->get($field))) {
                     if (!is_array($this->errors)) {
                         $this->errors = array();
                     }
                     $this->errors[$field][] = $rule->getMessage();
                 }
             }
         }
     }
 }