Example #1
0
File: Unit.php Project: techart/tao
 /**
  * @param string $name
  *
  * @return Dev_Unit_AssertBundle
  */
 private function load_bundle($name)
 {
     $mname = 'Dev.Unit.Assert.' . Core_Strings::capitalize($name);
     $mclass = Core_Types::real_class_name_for($mname);
     Core::load($mname);
     if (Core_Types::is_subclass_of('Dev.Unit.AssertBundleModuleInterface', $mclass) && ($bundle = call_user_func(array($mclass, 'bundle'))) instanceof Dev_Unit_AssertBundle) {
         return $this->bundles[$name] = $bundle;
     } else {
         throw new Dev_Unit_InvalidAssertBundleException($name);
     }
 }
Example #2
0
 public function fields(array $data = array())
 {
     foreach ($data as &$v) {
         $v = Core_Strings::capitalize($v);
     }
     return $this->__call('fields', array($data));
 }
Example #3
0
 public function test_capitalize()
 {
     $this->assertEquals(Core_Strings::capitalize('string'), 'String');
     $this->assertEquals(Core_Strings::capitalize('яблочный сироп'), 'Яблочный сироп');
 }
Example #4
0
File: Rest.php Project: techart/tao
 /**
  * @param WebKit_HTTP_Request $request
  *
  * @return WebKit_Controller_Route
  */
 public function route($request)
 {
     if ($this->is_not_match_for($request->urn)) {
         return null;
     }
     if ($route = $this->route_index($request)) {
         return $route;
     }
     $uri = Core_Regexps::replace('{^/|/$}', '', $this->clean_url($request->urn));
     $uri = Core_Strings::replace($uri, '.' . ($format = $this->guess_format($uri)), '');
     $current = false;
     $action = false;
     $nested_ids = array();
     $parts = Core_Strings::split_by('/', $uri);
     $last_idx = count($parts) - 1;
     foreach ($parts as $idx => $part) {
         if (!$current) {
             if (isset($this->resources[$part]) && !isset($this->resources[$part]['parent'])) {
                 $current = $part;
             } else {
                 return null;
             }
         } else {
             if (isset($nested_ids["{$this->resources[$current]['single']}_id"])) {
                 if (isset($this->resources[$current]['instance']) && isset($this->resources[$current]['instance'][$part]) && Core_Strings::contains($this->resources[$current]['instance'][$part], $request->method) && $idx == $last_idx) {
                     $action = $part;
                     break;
                 }
                 if (isset($this->resources[$part]) && isset($this->resources[$current]['nested']) && Core_Arrays::contains($this->resources[$current]['nested'], $part)) {
                     $current = $part;
                 } else {
                     return null;
                 }
             } else {
                 if (isset($this->resources[$current]['collection']) && isset($this->resources[$current]['collection'][$part]) && Core_Strings::contains($this->resources[$current]['collection'][$part], $request->method) && $idx == $last_idx) {
                     $action = $part;
                 } else {
                     $nested_ids["{$this->resources[$current]['single']}_id"] = $part;
                 }
             }
         }
     }
     $id = isset($nested_ids["{$this->resources[$current]['single']}_id"]) ? $nested_ids["{$this->resources[$current]['single']}_id"] : false;
     if (!$action) {
         switch ($request->method_name) {
             case 'get':
                 $action = $id === false ? 'index' : 'view';
                 break;
             case 'post':
                 $action = 'create';
                 break;
             case 'put':
                 $action = 'update';
                 break;
             case 'delete':
                 $action = 'delete';
                 break;
         }
     }
     return WebKit_Controller::Route()->merge(array('controller' => isset($this->resources[$current]['controller']) ? $this->resources[$current]['controller'] : Core_Strings::capitalize($current) . 'Controller', 'action' => $action, 'format' => $format))->merge($id ? array($id) : array())->merge($nested_ids)->merge($this->defaults)->add_controller_prefix($this->options['prefix']);
 }