aboutsummaryrefslogtreecommitdiff
path: root/app/class/wflywheel
diff options
context:
space:
mode:
Diffstat (limited to 'app/class/wflywheel')
-rw-r--r--app/class/wflywheel/formatter/json.php20
-rw-r--r--app/class/wflywheel/predicate.php11
-rw-r--r--app/class/wflywheel/query.php16
-rw-r--r--app/class/wflywheel/repository.php30
4 files changed, 77 insertions, 0 deletions
diff --git a/app/class/wflywheel/formatter/json.php b/app/class/wflywheel/formatter/json.php
new file mode 100644
index 0000000..8583802
--- /dev/null
+++ b/app/class/wflywheel/formatter/json.php
@@ -0,0 +1,20 @@
+<?php
+namespace WFlywheel\Formatter;
+
+class JSON implements \JamesMoss\Flywheel\Formatter\FormatInterface
+{
+ public function getFileExtension()
+ {
+ return 'json';
+ }
+ public function encode(array $data)
+ {
+ $options = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : null;
+ return json_encode($data, $options);
+ }
+ public function decode($data)
+ {
+ $options = defined('JSON_OBJECT_AS_ARRAY') ? JSON_OBJECT_AS_ARRAY : null;
+ return json_decode($data, $options);
+ }
+} \ No newline at end of file
diff --git a/app/class/wflywheel/predicate.php b/app/class/wflywheel/predicate.php
new file mode 100644
index 0000000..2229461
--- /dev/null
+++ b/app/class/wflywheel/predicate.php
@@ -0,0 +1,11 @@
+<?php
+namespace WFlywheel;
+
+class Predicate extends \JamesMoss\Flywheel\Predicate
+{
+ public function __construct() {
+ $this->operators = array(
+ '>', '>=', '<', '<=', '==', '===', '!=', '!==', 'IN'
+ );
+ }
+}
diff --git a/app/class/wflywheel/query.php b/app/class/wflywheel/query.php
new file mode 100644
index 0000000..49aff16
--- /dev/null
+++ b/app/class/wflywheel/query.php
@@ -0,0 +1,16 @@
+<?php
+namespace WFlywheel;
+
+class Query extends \JamesMoss\Flywheel\Query
+{
+ /**
+ * Constructor
+ *
+ * @param Repository $repository The repo this query will run against.
+ */
+ public function __construct(Repository $repository)
+ {
+ parent::__construct($repository);
+ $this->predicate = new Predicate();
+ }
+}
diff --git a/app/class/wflywheel/repository.php b/app/class/wflywheel/repository.php
new file mode 100644
index 0000000..baad42e
--- /dev/null
+++ b/app/class/wflywheel/repository.php
@@ -0,0 +1,30 @@
+<?php
+namespace WFlywheel;
+
+class Repository extends \JamesMoss\Flywheel\Repository
+{
+ /**
+ * Get an array containing the path of all files in this repository
+ *
+ * @return array An array, item is a file
+ */
+ public function getAllFiles()
+ {
+ $ext = $this->formatter->getFileExtension();
+ $files = glob($this->path . DIRECTORY_SEPARATOR . '*.' . $ext);
+ return $files;
+ }
+
+ /**
+ * Get an array containing the id of all files in this repository
+ *
+ * @return array An array, item is a id
+ */
+ public function getAllIds()
+ {
+ $ext = $this->formatter->getFileExtension();
+ return array_map(function($path) use ($ext) {
+ return $this->getIdFromPath($path, $ext);
+ }, $this->getAllFiles());
+ }
+}