Skip to content

Commit 4804025

Browse files
committed
refactor specific filters
1 parent 093486f commit 4804025

File tree

8 files changed

+104
-57
lines changed

8 files changed

+104
-57
lines changed

src/SDK/Language.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,11 @@ public function getParams()
7474
{
7575
return $this->params;
7676
}
77+
78+
/**
79+
* @return array
80+
*/
81+
public function getTwigFilters(){
82+
return [];
83+
}
7784
}

src/SDK/Language/Dart.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Appwrite\SDK\Language;
44

55
use Appwrite\SDK\Language;
6+
use Twig\TwigFilter;
67

78
class Dart extends Language {
89

@@ -434,4 +435,17 @@ public function getFiles()
434435
],
435436
];
436437
}
438+
439+
public function getTwigFilters()
440+
{
441+
return [
442+
new TwigFilter('dartComment', function ($value) {
443+
$value = explode("\n", $value);
444+
foreach ($value as $key => $line) {
445+
$value[$key] = " /// " . wordwrap($value[$key], 75, "\n /// ");
446+
}
447+
return implode("\n", $value);
448+
}, ['is_safe' => ['html']]),
449+
];
450+
}
437451
}

src/SDK/Language/DotNet.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Appwrite\SDK\Language;
44

55
use Appwrite\SDK\Language;
6+
use Twig\TwigFilter;
67

78
class DotNet extends Language {
89

@@ -376,5 +377,18 @@ public function getFiles()
376377
]
377378
];
378379
}
380+
381+
public function getTwigFilters()
382+
{
383+
return [
384+
new TwigFilter('dotnetComment', function ($value) {
385+
$value = explode("\n", $value);
386+
foreach ($value as $key => $line) {
387+
$value[$key] = " /// " . wordwrap($value[$key], 75, "\n /// ");
388+
}
389+
return implode("\n", $value);
390+
}, ['is_safe' => ['html']])
391+
];
392+
}
379393
}
380394

src/SDK/Language/Go.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Appwrite\SDK\Language;
44

55
use Appwrite\SDK\Language;
6+
use Twig\TwigFilter;
67

78
class Go extends Language {
89

@@ -246,4 +247,17 @@ public function getParamExample(array $param)
246247

247248
return $output;
248249
}
250+
251+
public function getTwigFilters()
252+
{
253+
return [
254+
new TwigFilter('godocComment', function ($value) {
255+
$value = explode("\n", $value);
256+
foreach ($value as $key => $line) {
257+
$value[$key] = "// " . wordwrap($value[$key], 75, "\n// ");
258+
}
259+
return implode("\n", $value);
260+
}, ['is_safe' => ['html']])
261+
];
262+
}
249263
}

src/SDK/Language/Ruby.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Appwrite\SDK\Language;
44

55
use Appwrite\SDK\Language;
6+
use Twig\TwigFilter;
67

78
class Ruby extends Language {
89

@@ -327,4 +328,17 @@ protected function jsonToHash(array $data):string
327328

328329
return $output;
329330
}
331+
332+
public function getTwigFilters()
333+
{
334+
return [
335+
new TwigFilter('rubyComment', function ($value) {
336+
$value = explode("\n", $value);
337+
foreach ($value as $key => $line) {
338+
$value[$key] = " # " . wordwrap($line, 75, "\n # ");
339+
}
340+
return implode("\n", $value);
341+
}, ['is_safe' => ['html']])
342+
];
343+
}
330344
}

src/SDK/Language/Swift.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Appwrite\SDK\Language;
44

55
use Appwrite\SDK\Language;
6+
use Twig\TwigFilter;
67

78
class Swift extends Language {
89

@@ -432,4 +433,17 @@ public function getParamExample(array $param)
432433

433434
return $output;
434435
}
436+
437+
public function getTwigFilters()
438+
{
439+
return [
440+
new TwigFilter('swiftComment', function ($value) {
441+
$value = explode("\n", $value);
442+
foreach ($value as $key => $line) {
443+
$value[$key] = " /// " . wordwrap($value[$key], 75, "\n /// ");
444+
}
445+
return implode("\n", $value);
446+
}, ['is_safe' => ['html']])
447+
];
448+
}
435449
}

src/SDK/Language/Web.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace Appwrite\SDK\Language;
44

5+
use Twig\TwigFilter;
6+
57
class Web extends JS {
68

79
/**
@@ -141,4 +143,24 @@ public function getParamExample(array $param)
141143

142144
return $output;
143145
}
146+
147+
public function getTwigFilters()
148+
{
149+
return [
150+
new TwigFilter('comment2', function ($value) {
151+
$value = explode("\n", $value);
152+
foreach ($value as $key => $line) {
153+
$value[$key] = " * " . wordwrap($value[$key], 75, "\n * ");
154+
}
155+
return implode("\n", $value);
156+
}, ['is_safe' => ['html']]),
157+
new TwigFilter('comment3', function ($value) {
158+
$value = explode("\n", $value);
159+
foreach ($value as $key => $line) {
160+
$value[$key] = " * " . wordwrap($value[$key], 75, "\n * ");
161+
}
162+
return implode("\n", $value);
163+
}, ['is_safe' => ['html']]),
164+
];
165+
}
144166
}

src/SDK/SDK.php

Lines changed: 5 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -133,48 +133,6 @@ public function __construct(Language $language, Spec $spec)
133133
}
134134
return implode("\n", $value);
135135
}, ['is_safe' => ['html']]));
136-
$this->twig->addFilter(new TwigFilter('comment2', function ($value) {
137-
$value = explode("\n", $value);
138-
foreach ($value as $key => $line) {
139-
$value[$key] = " * " . wordwrap($value[$key], 75, "\n * ");
140-
}
141-
return implode("\n", $value);
142-
}, ['is_safe' => ['html']]));
143-
$this->twig->addFilter(new TwigFilter('comment3', function ($value) {
144-
$value = explode("\n", $value);
145-
foreach ($value as $key => $line) {
146-
$value[$key] = " * " . wordwrap($value[$key], 75, "\n * ");
147-
}
148-
return implode("\n", $value);
149-
}, ['is_safe' => ['html']]));
150-
$this->twig->addFilter(new TwigFilter('dartComment', function ($value) {
151-
$value = explode("\n", $value);
152-
foreach ($value as $key => $line) {
153-
$value[$key] = " /// " . wordwrap($value[$key], 75, "\n /// ");
154-
}
155-
return implode("\n", $value);
156-
}, ['is_safe' => ['html']]));
157-
$this->twig->addFilter(new TwigFilter('dotnetComment', function ($value) {
158-
$value = explode("\n", $value);
159-
foreach ($value as $key => $line) {
160-
$value[$key] = " /// " . wordwrap($value[$key], 75, "\n /// ");
161-
}
162-
return implode("\n", $value);
163-
}, ['is_safe' => ['html']]));
164-
$this->twig->addFilter(new TwigFilter('swiftComment', function ($value) {
165-
$value = explode("\n", $value);
166-
foreach ($value as $key => $line) {
167-
$value[$key] = " /// " . wordwrap($value[$key], 75, "\n /// ");
168-
}
169-
return implode("\n", $value);
170-
}, ['is_safe' => ['html']]));
171-
$this->twig->addFilter(new TwigFilter('rubyComment', function ($value) {
172-
$value = explode("\n", $value);
173-
foreach ($value as $key => $line) {
174-
$value[$key] = " # " . wordwrap($line, 75, "\n # ");
175-
}
176-
return implode("\n", $value);
177-
}, ['is_safe' => ['html']]));
178136
$this->twig->addFilter(new TwigFilter('escapeDollarSign', function ($value) {
179137
return str_replace('$', '\$', $value);
180138
}, ['is_safe'=>['html']]));
@@ -191,28 +149,13 @@ public function __construct(Language $language, Spec $spec)
191149
$this->twig->addFilter(new TwigFilter('html', function ($value) {
192150
return $value;
193151
}, ['is_safe' => ['html']]));
194-
$this->twig->addFilter(new TwigFilter('godocComment', function ($value) {
195-
$value = explode("\n", $value);
196-
foreach ($value as $key => $line) {
197-
$value[$key] = "// " . wordwrap($value[$key], 75, "\n// ");
198-
}
199-
return implode("\n", $value);
200-
}, ['is_safe' => ['html']]));
201152
$this->twig->addFilter(new TwigFilter('escapeKeyword', function ($value) use ($language) {
202153
if(in_array($value, $language->getKeywords())) {
203154
return 'x' . $value;
204155
}
205156

206157
return $value;
207158
}, ['is_safe' => ['html']]));
208-
$this->twig->addFilter(new TwigFilter('ucFirstAndEscape', function ($value) use ($language) {
209-
$value = ucfirst((string)$this->helperCamelCase($value));
210-
if(in_array($value, $language->getKeywords())) {
211-
$value = 'x' . $value;
212-
}
213-
214-
return ucfirst((string)$this->helperCamelCase($value));
215-
}, ['is_safe' => ['html']]));
216159
$this->twig->addFilter(new TwigFilter('caseHTML', function ($value) {
217160
return $value;
218161
}, ['is_safe' => ['html']]));
@@ -228,6 +171,11 @@ public function __construct(Language $language, Spec $spec)
228171
}
229172
return $value;
230173
}));
174+
175+
// Language specific filters
176+
foreach($language->getTwigFilters() as $filter) {
177+
$this->twig->addFilter($filter);
178+
}
231179
}
232180

233181
/**

0 commit comments

Comments
 (0)