summaryrefslogtreecommitdiff
path: root/bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator
diff options
context:
space:
mode:
Diffstat (limited to 'bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator')
-rw-r--r--bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/AnonymousGenerator.php41
-rw-r--r--bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/ApiGenerator.php27
-rw-r--r--bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/FluentGenerator.php68
3 files changed, 136 insertions, 0 deletions
diff --git a/bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/AnonymousGenerator.php b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/AnonymousGenerator.php
new file mode 100644
index 00000000..715e3c02
--- /dev/null
+++ b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/AnonymousGenerator.php
@@ -0,0 +1,41 @@
+<?php
+
+namespace Mediawiki\Api\Generator;
+
+/**
+ * @access public
+ *
+ * @author Addshore
+ *
+ * @since 0.5.1
+ */
+class AnonymousGenerator implements ApiGenerator {
+
+ /**
+ * @var string
+ */
+ private $name;
+
+ /**
+ * @var array
+ */
+ private $params;
+
+ /**
+ * @param string $name
+ * @param array $params including 'g' prefix keys
+ */
+ public function __construct( $name, array $params ) {
+ $this->name = $name;
+ $this->params = $params;
+ }
+
+ /**
+ * @return array
+ */
+ public function getParams() {
+ $params = $this->params;
+ $params['generator'] = $this->name;
+ return $params;
+ }
+}
diff --git a/bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/ApiGenerator.php b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/ApiGenerator.php
new file mode 100644
index 00000000..923e98cd
--- /dev/null
+++ b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/ApiGenerator.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Mediawiki\Api\Generator;
+
+/**
+ * Interface relating to Mediawiki generators
+ * @see https://www.mediawiki.org/wiki/API:Query#Generators
+ *
+ * @access public
+ *
+ * @author Addshore
+ *
+ * @since 0.5.1
+ */
+interface ApiGenerator {
+
+ /**
+ * @since 0.5.1
+ *
+ * Associative array of parameters including the 'generator' parameter.
+ * All generator param keys must have their 'g' prefixes
+ *
+ * @return string[]
+ */
+ public function getParams();
+
+}
diff --git a/bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/FluentGenerator.php b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/FluentGenerator.php
new file mode 100644
index 00000000..108f4999
--- /dev/null
+++ b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Generator/FluentGenerator.php
@@ -0,0 +1,68 @@
+<?php
+
+namespace Mediawiki\Api\Generator;
+
+/**
+ * @access public
+ *
+ * @author Addshore
+ *
+ * @since 0.5.1
+ */
+class FluentGenerator implements ApiGenerator {
+
+ private $name;
+ private $params;
+
+ /**
+ * @param string $name
+ */
+ public function __construct( $name ) {
+ $this->name = $name;
+ }
+
+ /**
+ * Convenience method for using this fluidly
+ *
+ * @param string $name
+ *
+ * @return FluentGenerator
+ */
+ public static function factory( $name ) {
+ return new self( $name );
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getParams() {
+ $params = $this->params;
+ $params['generator'] = $this->name;
+ return $params;
+ }
+
+ /**
+ * @param string $key optionally with the 'g' prefix
+ * @param string $value
+ *
+ * @return $this
+ */
+ public function set( $key, $value ) {
+ $key = $this->addKeyprefixIfNeeded( $key );
+ $this->params[$key] = $value;
+ return $this;
+ }
+
+ /**
+ * @param string $key
+ *
+ * @return string
+ */
+ private function addKeyPrefixIfNeeded( $key ) {
+ if ( strtolower( substr( $key, 0, 1 ) ) === 'g' ) {
+ return $key;
+ }
+ return 'g' . $key;
+ }
+
+}