public static function get($library, $identifier, array $options = array())
{
static::_ensureIndexedLibrary($library);
$defaults = array('namespaceDoc' => array(), 'language' => 'en');
$options += $defaults;
$options['namespaceDoc'] = (array) $options['namespaceDoc'];
$config = Libraries::get('li3_docs');
if (isset($config['namespaceDoc'])) {
$options['namespaceDoc'] = array_merge($options['namespaceDoc'], (array) $config['namespaceDoc']);
}
$path = Libraries::path($identifier);
static::_ensurePathInBase($path);
if (file_exists($path) && !static::_isClassFile($path)) {
return static::_file(compact('library', 'path', 'identifier'), $options);
}
$data = Inspector::info($identifier);
$proto = compact('identifier', 'library') + array('name' => null, 'type' => Inspector::type($identifier), 'info' => array(), 'classes' => null, 'methods' => null, 'properties' => null, 'parent' => null, 'children' => null, 'source' => null, 'subClasses' => array(), 'description' => isset($data['description']) ? $data['description'] : null, 'text' => isset($data['text']) ? $data['text'] : null);
$format = "_{$proto['type']}";
$data = static::$format($proto, (array) $data, $options);
if (!$data) {
return false;
}
foreach (array('text', 'description') as $key) {
$data[$key] = Code::embed($data[$key], compact('library'));
}
return $data;
}