Skip to content

Commit 3a4a866

Browse files
Merge pull request #356 from AKSW/feature/OntoWikiInstaller
Add OntoWiki installer
2 parents 12b916a + 7afadfb commit 3a4a866

File tree

4 files changed

+111
-0
lines changed

4 files changed

+111
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ is not needed to install packages with these frameworks:
7676
| MODX Evo | `modxevo-snippet`<br>`modxevo-plugin`<br>`modxevo-module`<br>`modxevo-template`<br>`modxevo-lib`
7777
| MediaWiki | `mediawiki-extension`
7878
| October | **`october-module`<br>`october-plugin`<br>`october-theme`**
79+
| OntoWiki | `ontowiki-extension`<br>`ontowiki-theme`<br>`ontowiki-translation`
7980
| OXID | `oxid-module`<br>`oxid-theme`<br>`oxid-out`
8081
| MODULEWork | `modulework-module`
8182
| Moodle | `moodle-*` (Please [check source](https://raw.githubusercontent.com/composer/installers/master/src/Composer/Installers/MoodleInstaller.php) for all supported types)

src/Composer/Installers/Installer.php

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class Installer extends LibraryInstaller
6161
'modxevo' => 'MODXEvoInstaller',
6262
'moodle' => 'MoodleInstaller',
6363
'october' => 'OctoberInstaller',
64+
'ontowiki' => 'OntoWikiInstaller',
6465
'oxid' => 'OxidInstaller',
6566
'phpbb' => 'PhpBBInstaller',
6667
'pimcore' => 'PimcoreInstaller',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
namespace Composer\Installers;
3+
4+
class OntoWikiInstaller extends BaseInstaller
5+
{
6+
protected $locations = array(
7+
'extension' => 'extensions/{$name}/',
8+
'theme' => 'extensions/themes/{$name}/',
9+
'translation' => 'extensions/translations/{$name}/',
10+
);
11+
12+
/**
13+
* Format package name to lower case and remove ".ontowiki" suffix
14+
*/
15+
public function inflectPackageVars($vars)
16+
{
17+
$vars['name'] = strtolower($vars['name']);
18+
$vars['name'] = preg_replace('/.ontowiki$/', '', $vars['name']);
19+
$vars['name'] = preg_replace('/-theme$/', '', $vars['name']);
20+
$vars['name'] = preg_replace('/-translation$/', '', $vars['name']);
21+
22+
return $vars;
23+
}
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<?php
2+
namespace Composer\Installers\Test;
3+
4+
use Composer\Installers\OntoWikiInstaller;
5+
use Composer\Package\Package;
6+
use Composer\Composer;
7+
8+
/**
9+
* Test for the OntoWikiInstaller
10+
* code was taken from DokuWikiInstaller
11+
*/
12+
class OntoWikiInstallerTest extends \PHPUnit_Framework_TestCase
13+
{
14+
/**
15+
* @var OntoWikiInstaller
16+
*/
17+
private $installer;
18+
19+
public function setUp()
20+
{
21+
$this->installer = new OntoWikiInstaller();
22+
}
23+
24+
/**
25+
* @dataProvider packageNameInflectionProvider
26+
*/
27+
public function testInflectPackageVars($type, $name, $expected)
28+
{
29+
$this->assertEquals(
30+
$this->installer->inflectPackageVars(array('name' => $name, 'type'=>$type)),
31+
array('name' => $expected, 'type'=>$type)
32+
);
33+
}
34+
35+
public function packageNameInflectionProvider()
36+
{
37+
return array(
38+
array(
39+
'ontowiki-extension',
40+
'CSVImport.ontowiki',
41+
'csvimport',
42+
),
43+
array(
44+
'ontowiki-extension',
45+
'csvimport',
46+
'csvimport',
47+
),
48+
array(
49+
'ontowiki-extension',
50+
'some_ontowiki_extension',
51+
'some_ontowiki_extension',
52+
),
53+
array(
54+
'ontowiki-extension',
55+
'some_ontowiki_extension.ontowiki',
56+
'some_ontowiki_extension',
57+
),
58+
array(
59+
'ontowiki-translation',
60+
'de-translation.ontowiki',
61+
'de',
62+
),
63+
array(
64+
'ontowiki-translation',
65+
'en-US-translation.ontowiki',
66+
'en-us',
67+
),
68+
array(
69+
'ontowiki-translation',
70+
'en-US-translation',
71+
'en-us',
72+
),
73+
array(
74+
'ontowiki-theme',
75+
'blue-theme.ontowiki',
76+
'blue',
77+
),
78+
array(
79+
'ontowiki-theme',
80+
'blue-theme',
81+
'blue',
82+
),
83+
);
84+
}
85+
}

0 commit comments

Comments
 (0)