aboutsummaryrefslogtreecommitdiff
path: root/app/Models/Search.php
diff options
context:
space:
mode:
authorGravatar Alexis Degrugillier <github@ainw.org> 2015-02-12 21:05:33 -0500
committerGravatar Alexis Degrugillier <github@ainw.org> 2015-02-12 21:05:33 -0500
commit9f83aa5fe79618be98cb027bb1070f5a11c51723 (patch)
treede223a1febe0ab0db42cad641dd33e660fefd1ac /app/Models/Search.php
parent9cee5c1a17947d3f3d10554844b7089e28cf8500 (diff)
Refactor the code to make less unnecessaty calls
There were multiple calls made to the cleaning method that were unnecessary since it is useful only on the last call. It allows to simplify code by returning values ealier.
Diffstat (limited to 'app/Models/Search.php')
-rw-r--r--app/Models/Search.php42
1 files changed, 25 insertions, 17 deletions
diff --git a/app/Models/Search.php b/app/Models/Search.php
index e64f6cb88..ef8fc883d 100644
--- a/app/Models/Search.php
+++ b/app/Models/Search.php
@@ -32,7 +32,7 @@ class FreshRSS_Search {
$input = $this->parsePubdateSearch($input);
$input = $this->parseDateSearch($input);
$input = $this->parseTagsSeach($input);
- $this->search = $input;
+ $this->search = $this->cleanSearch($input);
}
public function getRawInput() {
@@ -86,12 +86,13 @@ class FreshRSS_Search {
private function parseIntitleSearch($input) {
if (preg_match('/intitle:(?P<delim>[\'"])(?P<search>.*)(?P=delim)/U', $input, $matches)) {
$this->intitle = $matches['search'];
- $input = str_replace($matches[0], '', $input);
- } else if (preg_match('/intitle:(?P<search>\w*)/', $input, $matches)) {
+ return str_replace($matches[0], '', $input);
+ }
+ if (preg_match('/intitle:(?P<search>\w*)/', $input, $matches)) {
$this->intitle = $matches['search'];
- $input = str_replace($matches[0], '', $input);
+ return str_replace($matches[0], '', $input);
}
- return $this->cleanSearch($input);
+ return $input;
}
/**
@@ -107,12 +108,13 @@ class FreshRSS_Search {
private function parseAuthorSearch($input) {
if (preg_match('/author:(?P<delim>[\'"])(?P<search>.*)(?P=delim)/U', $input, $matches)) {
$this->author = $matches['search'];
- $input = str_replace($matches[0], '', $input);
- } else if (preg_match('/author:(?P<search>\w*)/', $input, $matches)) {
+ return str_replace($matches[0], '', $input);
+ }
+ if (preg_match('/author:(?P<search>\w*)/', $input, $matches)) {
$this->author = $matches['search'];
- $input = str_replace($matches[0], '', $input);
+ return str_replace($matches[0], '', $input);
}
- return $this->cleanSearch($input);
+ return $input;
}
/**
@@ -126,9 +128,9 @@ class FreshRSS_Search {
private function parseInurlSearch($input) {
if (preg_match('/inurl:(?P<search>[^\s]*)/', $input, $matches)) {
$this->inurl = $matches['search'];
- $input = str_replace($matches[0], '', $input);
+ return str_replace($matches[0], '', $input);
}
- return $this->cleanSearch($input);
+ return $input;
}
/**
@@ -142,9 +144,9 @@ class FreshRSS_Search {
private function parseDateSearch($input) {
if (preg_match('/date:(?P<search>[^\s]*)/', $input, $matches)) {
list($this->min_date, $this->max_date) = parseDateInterval($matches['search']);
- $input = str_replace($matches[0], '', $input);
+ return str_replace($matches[0], '', $input);
}
- return $this->cleanSearch($input);
+ return $input;
}
/**
@@ -158,9 +160,9 @@ class FreshRSS_Search {
private function parsePubdateSearch($input) {
if (preg_match('/pubdate:(?P<search>[^\s]*)/', $input, $matches)) {
list($this->min_pubdate, $this->max_pubdate) = parseDateInterval($matches['search']);
- $input = str_replace($matches[0], '', $input);
+ return str_replace($matches[0], '', $input);
}
- return $this->cleanSearch($input);
+ return $input;
}
/**
@@ -174,11 +176,17 @@ class FreshRSS_Search {
private function parseTagsSeach($input) {
if (preg_match_all('/#(?P<search>[^\s]+)/', $input, $matches)) {
$this->tags = $matches['search'];
- $input = str_replace($matches[0], '', $input);
+ return str_replace($matches[0], '', $input);
}
- return $this->cleanSearch($input);
+ return $input;
}
+ /**
+ * Remove all unnecessary spaces in the search
+ *
+ * @param string $input
+ * @return string
+ */
private function cleanSearch($input) {
$input = preg_replace('/\s+/', ' ', $input);
return trim($input);