/** * @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); } }
public function fields(array $data = array()) { foreach ($data as &$v) { $v = Core_Strings::capitalize($v); } return $this->__call('fields', array($data)); }
public function test_capitalize() { $this->assertEquals(Core_Strings::capitalize('string'), 'String'); $this->assertEquals(Core_Strings::capitalize('яблочный сироп'), 'Яблочный сироп'); }
/** * @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']); }