diff --git a/app/Support/Twig/General.php b/app/Support/Twig/General.php
index 81ea504928..cea58f5cef 100644
--- a/app/Support/Twig/General.php
+++ b/app/Support/Twig/General.php
@@ -28,34 +28,95 @@ class General extends Twig_Extension
*/
public function getFilters()
{
- $filters = [];
+ return [
+ $this->formatAmount(),
+ $this->formatTransaction(),
+ $this->formatAmountPlain(),
+ $this->formatJournal(),
+ $this->balance(),
+ $this->getAccountRole()
+ ];
- $filters[] = new Twig_SimpleFilter(
- 'formatAmount', function($string) {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function getFunctions()
+ {
+ return [
+ $this->getCurrencyCode(),
+ $this->getCurrencySymbol(),
+ $this->phpdate(),
+ $this->env(),
+ $this->activeRoute()
+ ];
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function getName()
+ {
+ return 'FireflyIII\Support\Twig\General';
+ }
+
+ /**
+ * @return Twig_SimpleFilter
+ */
+ protected function formatAmount()
+ {
+ return new Twig_SimpleFilter(
+ 'formatAmount', function ($string) {
return App::make('amount')->format($string);
}, ['is_safe' => ['html']]
);
+ }
- $filters[] = new Twig_SimpleFilter(
- 'formatTransaction', function(Transaction $transaction) {
+ /**
+ * @return Twig_SimpleFilter
+ */
+ protected function formatTransaction()
+ {
+ return new Twig_SimpleFilter(
+ 'formatTransaction', function (Transaction $transaction) {
return App::make('amount')->formatTransaction($transaction);
}, ['is_safe' => ['html']]
);
+ }
- $filters[] = new Twig_SimpleFilter(
- 'formatAmountPlain', function($string) {
+ /**
+ * @return Twig_SimpleFilter
+ */
+ protected function formatAmountPlain()
+ {
+ return new Twig_SimpleFilter(
+ 'formatAmountPlain', function ($string) {
return App::make('amount')->format($string, false);
}, ['is_safe' => ['html']]
);
+ }
- $filters[] = new Twig_SimpleFilter(
- 'formatJournal', function($journal) {
+ /**
+ * @return Twig_SimpleFilter
+ */
+ protected function formatJournal()
+ {
+ return new Twig_SimpleFilter(
+ 'formatJournal', function ($journal) {
return App::make('amount')->formatJournal($journal);
}, ['is_safe' => ['html']]
);
+ }
- $filters[] = new Twig_SimpleFilter(
- 'balance', function(Account $account = null) {
+ /**
+ * @return Twig_SimpleFilter
+ */
+ protected function balance()
+ {
+ return new Twig_SimpleFilter(
+ 'balance', function (Account $account = null) {
if (is_null($account)) {
return 'NULL';
}
@@ -64,51 +125,75 @@ class General extends Twig_Extension
return App::make('steam')->balance($account, $date);
}
);
-
- // should be a function but OK
- $filters[] = new Twig_SimpleFilter(
- 'getAccountRole', function($name) {
- return Config::get('firefly.accountRoles.' . $name);
- }
- );
-
- return $filters;
}
/**
- * {@inheritDoc}
+ * @return Twig_SimpleFilter
*/
- public function getFunctions()
+ protected function getAccountRole()
{
- $functions = [];
+ return new Twig_SimpleFilter(
+ 'getAccountRole', function ($name) {
+ return Config::get('firefly.accountRoles.' . $name);
+ }
+ );
+ }
- $functions[] = new Twig_SimpleFunction(
- 'getCurrencyCode', function() {
+ /**
+ * @return Twig_SimpleFunction
+ */
+ protected function getCurrencyCode()
+ {
+ return new Twig_SimpleFunction(
+ 'getCurrencyCode', function () {
return App::make('amount')->getCurrencyCode();
}
);
+ }
- $functions[] = new Twig_SimpleFunction(
- 'getCurrencySymbol', function() {
+ /**
+ * @return Twig_SimpleFunction
+ */
+ protected function getCurrencySymbol()
+ {
+ return new Twig_SimpleFunction(
+ 'getCurrencySymbol', function () {
return App::make('amount')->getCurrencySymbol();
}
);
+ }
- $functions[] = new Twig_SimpleFunction(
- 'phpdate', function($str) {
+ /**
+ * @return Twig_SimpleFunction
+ */
+ protected function phpdate()
+ {
+ return new Twig_SimpleFunction(
+ 'phpdate', function ($str) {
return date($str);
}
);
+ }
-
- $functions[] = new Twig_SimpleFunction(
- 'env', function($name, $default) {
+ /**
+ * @return Twig_SimpleFunction
+ */
+ protected function env()
+ {
+ return new Twig_SimpleFunction(
+ 'env', function ($name, $default) {
return env($name, $default);
}
);
+ }
- $functions[] = new Twig_SimpleFunction(
- 'activeRoute', function($context) {
+ /**
+ * @return Twig_SimpleFunction
+ */
+ protected function activeRoute()
+ {
+ return new Twig_SimpleFunction(
+ 'activeRoute', function ($context) {
$args = func_get_args();
$route = $args[1];
$what = isset($args[2]) ? $args[2] : false;
@@ -133,18 +218,6 @@ class General extends Twig_Extension
return 'not-xxx-at-all';
}, ['needs_context' => true]
);
-
- return $functions;
-
-
- }
-
- /**
- * {@inheritDoc}
- */
- public function getName()
- {
- return 'FireflyIII\Support\Twig\General';
}
}
diff --git a/app/Support/Twig/Journal.php b/app/Support/Twig/Journal.php
index 6a25aaf9b7..99752f36e2 100644
--- a/app/Support/Twig/Journal.php
+++ b/app/Support/Twig/Journal.php
@@ -19,15 +19,45 @@ class Journal extends Twig_Extension
{
/**
- * @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @return array
*/
public function getFilters()
{
- $filters = [];
+ $filters = [$this->typeIcon()];
- $filters[] = new Twig_SimpleFilter(
- 'typeIcon', function(TransactionJournal $journal) {
+ return $filters;
+ }
+
+ /**
+ * @return array
+ */
+ public function getFunctions()
+ {
+ $functions = [
+ $this->invalidJournal(),
+ $this->relevantTags()
+ ];
+
+ return $functions;
+ }
+
+ /**
+ * Returns the name of the extension.
+ *
+ * @return string The extension name
+ */
+ public function getName()
+ {
+ return 'FireflyIII\Support\Twig\Journals';
+ }
+
+ /**
+ * @return Twig_SimpleFilter
+ */
+ protected function typeIcon()
+ {
+ return new Twig_SimpleFilter(
+ 'typeIcon', function (TransactionJournal $journal) {
$cache = new CacheProperties();
$cache->addProperty($journal->id);
@@ -62,21 +92,15 @@ class Journal extends Twig_Extension
}, ['is_safe' => ['html']]
);
-
- return $filters;
}
/**
- * @SuppressWarnings(PHPMD.CyclomaticComplexity)
- *
- * @return array
+ * @return Twig_SimpleFunction
*/
- public function getFunctions()
+ protected function invalidJournal()
{
- $functions = [];
-
- $functions[] = new Twig_SimpleFunction(
- 'invalidJournal', function(TransactionJournal $journal) {
+ return new Twig_SimpleFunction(
+ 'invalidJournal', function (TransactionJournal $journal) {
if (!isset($journal->transactions[1]) || !isset($journal->transactions[0])) {
return true;
}
@@ -84,20 +108,27 @@ class Journal extends Twig_Extension
return false;
}
);
+ }
- $functions[] = new Twig_SimpleFunction(
- 'relevantTags', function(TransactionJournal $journal) {
+ /**
+ * @return Twig_SimpleFunction
+ */
+ protected function relevantTags()
+ {
+ return new Twig_SimpleFunction(
+ 'relevantTags', function (TransactionJournal $journal) {
$cache = new CacheProperties;
$cache->addProperty('relevantTags');
$cache->addProperty($journal->id);
- if($cache->has()) {
+ if ($cache->has()) {
return $cache->get(); // @codeCoverageIgnore
}
if ($journal->tags->count() == 0) {
$string = App::make('amount')->formatJournal($journal);
$cache->store($string);
+
return $string;
}
@@ -107,9 +138,10 @@ class Journal extends Twig_Extension
// return tag formatted for a "balancing act", even if other
// tags are present.
$amount = App::make('amount')->format($journal->actual_amount, false);
- $string = ' ' . $tag->tag . '';
+ $string = ' ' . $tag->tag . '';
$cache->store($string);
+
return $string;
}
@@ -119,8 +151,9 @@ class Journal extends Twig_Extension
if ($tag->tagMode == 'advancePayment' && $journal->transactionType->type == 'Deposit') {
$amount = App::make('amount')->formatJournal($journal, false);
$string = ' ' . $tag->tag . '';
+ . '"> ' . $tag->tag . '';
$cache->store($string);
+
return $string;
}
/*
@@ -132,6 +165,7 @@ class Journal extends Twig_Extension
$string = '' . $amount . '';
$cache->store($string);
+
return $string;
}
@@ -140,6 +174,7 @@ class Journal extends Twig_Extension
// return the amount:
$string = App::make('amount')->formatJournal($journal);
$cache->store($string);
+
return $string;
}
}
@@ -148,17 +183,5 @@ class Journal extends Twig_Extension
return 'TODO: ' . $journal->amount;
}
);
-
- return $functions;
- }
-
- /**
- * Returns the name of the extension.
- *
- * @return string The extension name
- */
- public function getName()
- {
- return 'FireflyIII\Support\Twig\Journals';
}
}