summaryrefslogtreecommitdiff
path: root/vendor/guzzle/guzzle/src/Guzzle/Iterator/MethodProxyIterator.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/guzzle/guzzle/src/Guzzle/Iterator/MethodProxyIterator.php')
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Iterator/MethodProxyIterator.php27
1 files changed, 27 insertions, 0 deletions
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Iterator/MethodProxyIterator.php b/vendor/guzzle/guzzle/src/Guzzle/Iterator/MethodProxyIterator.php
new file mode 100644
index 0000000..de4ab03
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Iterator/MethodProxyIterator.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Guzzle\Iterator;
+
+/**
+ * Proxies missing method calls to the innermost iterator
+ */
+class MethodProxyIterator extends \IteratorIterator
+{
+ /**
+ * Proxy method calls to the wrapped iterator
+ *
+ * @param string $name Name of the method
+ * @param array $args Arguments to proxy
+ *
+ * @return mixed
+ */
+ public function __call($name, array $args)
+ {
+ $i = $this->getInnerIterator();
+ while ($i instanceof \OuterIterator) {
+ $i = $i->getInnerIterator();
+ }
+
+ return call_user_func_array(array($i, $name), $args);
+ }
+}