You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by nd...@apache.org on 2015/05/01 23:32:54 UTC

[07/57] [partial] airavata-php-gateway git commit: AIRAVATA 1632 + Job Description for Admin Dashboard

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/ControllerInspector.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ControllerInspector.php b/vendor/laravel/framework/src/Illuminate/Routing/ControllerInspector.php
new file mode 100644
index 0000000..d10d476
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/ControllerInspector.php
@@ -0,0 +1,131 @@
+<?php namespace Illuminate\Routing;
+
+use ReflectionClass, ReflectionMethod;
+
+class ControllerInspector {
+
+	/**
+	 * An array of HTTP verbs.
+	 *
+	 * @var array
+	 */
+	protected $verbs = array(
+		'any', 'get', 'post', 'put', 'patch',
+		'delete', 'head', 'options'
+	);
+
+	/**
+	 * Get the routable methods for a controller.
+	 *
+	 * @param  string  $controller
+	 * @param  string  $prefix
+	 * @return array
+	 */
+	public function getRoutable($controller, $prefix)
+	{
+		$routable = array();
+
+		$reflection = new ReflectionClass($controller);
+
+		$methods = $reflection->getMethods(ReflectionMethod::IS_PUBLIC);
+
+		// To get the routable methods, we will simply spin through all methods on the
+		// controller instance checking to see if it belongs to the given class and
+		// is a publicly routable method. If so, we will add it to this listings.
+		foreach ($methods as $method)
+		{
+			if ($this->isRoutable($method))
+			{
+				$data = $this->getMethodData($method, $prefix);
+
+				$routable[$method->name][] = $data;
+
+				// If the routable method is an index method, we will create a special index
+				// route which is simply the prefix and the verb and does not contain any
+				// the wildcard place-holders that each "typical" routes would contain.
+				if ($data['plain'] == $prefix.'/index')
+				{
+					$routable[$method->name][] = $this->getIndexData($data, $prefix);
+				}
+			}
+		}
+
+		return $routable;
+	}
+
+	/**
+	 * Determine if the given controller method is routable.
+	 *
+	 * @param  \ReflectionMethod  $method
+	 * @return bool
+	 */
+	public function isRoutable(ReflectionMethod $method)
+	{
+		if ($method->class == 'Illuminate\Routing\Controller') return false;
+
+		return starts_with($method->name, $this->verbs);
+	}
+
+	/**
+	 * Get the method data for a given method.
+	 *
+	 * @param  \ReflectionMethod  $method
+	 * @param  string  $prefix
+	 * @return array
+	 */
+	public function getMethodData(ReflectionMethod $method, $prefix)
+	{
+		$verb = $this->getVerb($name = $method->name);
+
+		$uri = $this->addUriWildcards($plain = $this->getPlainUri($name, $prefix));
+
+		return compact('verb', 'plain', 'uri');
+	}
+
+	/**
+	 * Get the routable data for an index method.
+	 *
+	 * @param  array   $data
+	 * @param  string  $prefix
+	 * @return array
+	 */
+	protected function getIndexData($data, $prefix)
+	{
+		return array('verb' => $data['verb'], 'plain' => $prefix, 'uri' => $prefix);
+	}
+
+	/**
+	 * Extract the verb from a controller action.
+	 *
+	 * @param  string  $name
+	 * @return string
+	 */
+	public function getVerb($name)
+	{
+		return head(explode('_', snake_case($name)));
+	}
+
+	/**
+	 * Determine the URI from the given method name.
+	 *
+	 * @param  string  $name
+	 * @param  string  $prefix
+	 * @return string
+	 */
+	public function getPlainUri($name, $prefix)
+	{
+		return $prefix.'/'.implode('-', array_slice(explode('_', snake_case($name)), 1));
+	}
+
+	/**
+	 * Add wildcards to the given URI.
+	 *
+	 * @param  string  $uri
+	 * @return string
+	 */
+	public function addUriWildcards($uri)
+	{
+		return $uri.'/{one?}/{two?}/{three?}/{four?}/{five?}';
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/ControllerServiceProvider.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ControllerServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Routing/ControllerServiceProvider.php
new file mode 100644
index 0000000..764808b
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/ControllerServiceProvider.php
@@ -0,0 +1,60 @@
+<?php namespace Illuminate\Routing;
+
+use Illuminate\Support\ServiceProvider;
+use Illuminate\Routing\Console\MakeControllerCommand;
+use Illuminate\Routing\Generators\ControllerGenerator;
+
+class ControllerServiceProvider extends ServiceProvider {
+
+	/**
+	 * Indicates if loading of the provider is deferred.
+	 *
+	 * @var bool
+	 */
+	protected $defer = true;
+
+	/**
+	 * Register the service provider.
+	 *
+	 * @return void
+	 */
+	public function register()
+	{
+		$this->registerGenerator();
+
+		$this->commands('command.controller.make');
+	}
+
+	/**
+	 * Register the controller generator command.
+	 *
+	 * @return void
+	 */
+	protected function registerGenerator()
+	{
+		$this->app->bindShared('command.controller.make', function($app)
+		{
+			// The controller generator is responsible for building resourceful controllers
+			// quickly and easily for the developers via the Artisan CLI. We'll go ahead
+			// and register this command instances in this container for registration.
+			$path = $app['path'].'/controllers';
+
+			$generator = new ControllerGenerator($app['files']);
+
+			return new MakeControllerCommand($generator, $path);
+		});
+	}
+
+	/**
+	 * Get the services provided by the provider.
+	 *
+	 * @return array
+	 */
+	public function provides()
+	{
+		return array(
+			'command.controller.make'
+		);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Generators/ControllerGenerator.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Generators/ControllerGenerator.php b/vendor/laravel/framework/src/Illuminate/Routing/Generators/ControllerGenerator.php
new file mode 100755
index 0000000..e7c8396
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Generators/ControllerGenerator.php
@@ -0,0 +1,207 @@
+<?php namespace Illuminate\Routing\Generators;
+
+use Illuminate\Filesystem\Filesystem;
+
+class ControllerGenerator {
+
+	/**
+	 * The filesystem instance.
+	 *
+	 * @var \Illuminate\Filesystem\Filesystem
+	 */
+	protected $files;
+
+	/**
+	 * The default resource controller methods.
+	 *
+	 * @var array
+	 */
+	protected $defaults = array(
+		'index',
+		'create',
+		'store',
+		'show',
+		'edit',
+		'update',
+		'destroy'
+	);
+
+	/**
+	 * Create a new controller generator instance.
+	 *
+	 * @param  \Illuminate\Filesystem\Filesystem  $files
+	 * @return void
+	 */
+	public function __construct(Filesystem $files)
+	{
+		$this->files = $files;
+	}
+
+	/**
+	 * Create a new resourceful controller file.
+	 *
+	 * @param  string  $controller
+	 * @param  string  $path
+	 * @param  array   $options
+	 * @return void
+	 */
+	public function make($controller, $path, array $options = array())
+	{
+		$stub = $this->addMethods($this->getController($controller), $options);
+
+		$this->writeFile($stub, $controller, $path);
+
+		return false;
+	}
+
+	/**
+	 * Write the completed stub to disk.
+	 *
+	 * @param  string  $stub
+	 * @param  string  $controller
+	 * @param  string  $path
+	 * @return void
+	 */
+	protected function writeFile($stub, $controller, $path)
+	{
+		if (str_contains($controller, '\\'))
+		{
+			$this->makeDirectory($controller, $path);
+		}
+
+		$controller = str_replace('\\', DIRECTORY_SEPARATOR, $controller);
+
+		if ( ! $this->files->exists($fullPath = $path."/{$controller}.php"))
+		{
+			return $this->files->put($fullPath, $stub);
+		}
+	}
+
+	/**
+	 * Create the directory for the controller.
+	 *
+	 * @param  string  $controller
+	 * @param  string  $path
+	 * @return void
+	 */
+	protected function makeDirectory($controller, $path)
+	{
+		$directory = $this->getDirectory($controller);
+
+		if ( ! $this->files->isDirectory($full = $path.'/'.$directory))
+		{
+			$this->files->makeDirectory($full, 0777, true);
+		}
+	}
+
+	/**
+	 * Get the directory the controller should live in.
+	 *
+	 * @param  string  $controller
+	 * @return string
+	 */
+	protected function getDirectory($controller)
+	{
+		return implode('/', array_slice(explode('\\', $controller), 0, -1));
+	}
+
+	/**
+	 * Get the controller class stub.
+	 *
+	 * @param  string  $controller
+	 * @return string
+	 */
+	protected function getController($controller)
+	{
+		$stub = $this->files->get(__DIR__.'/stubs/controller.stub');
+
+		// We will explode out the controller name on the namespace delimiter so we
+		// are able to replace a namespace in this stub file. If no namespace is
+		// provided we'll just clear out the namespace place-holder locations.
+		$segments = explode('\\', $controller);
+
+		$stub = $this->replaceNamespace($segments, $stub);
+
+		return str_replace('{{class}}', last($segments), $stub);
+	}
+
+	/**
+	 * Replace the namespace on the controller.
+	 *
+	 * @param  array   $segments
+	 * @param  string  $stub
+	 * @return string
+	 */
+	protected function replaceNamespace(array $segments, $stub)
+	{
+		if (count($segments) > 1)
+		{
+			$namespace = implode('\\', array_slice($segments, 0, -1));
+
+			return str_replace('{{namespace}}', ' namespace '.$namespace.';', $stub);
+		}
+
+		return str_replace('{{namespace}}', '', $stub);
+	}
+
+	/**
+	 * Add the method stubs to the controller.
+	 *
+	 * @param  string  $stub
+	 * @param  array   $options
+	 * @return string
+	 */
+	protected function addMethods($stub, array $options)
+	{
+		// Once we have the applicable methods, we can just spin through those methods
+		// and add each one to our array of method stubs. Then we will implode them
+		// them all with end-of-line characters and return the final joined list.
+		$stubs = $this->getMethodStubs($options);
+
+		$methods = implode(PHP_EOL.PHP_EOL, $stubs);
+
+		return str_replace('{{methods}}', $methods, $stub);
+	}
+
+	/**
+	 * Get all of the method stubs for the given options.
+	 *
+	 * @param  array  $options
+	 * @return array
+	 */
+	protected function getMethodStubs($options)
+	{
+		$stubs = array();
+
+		// Each stub is conveniently kept in its own file so we can just grab the ones
+		// we need from disk to build the controller file. Once we have them all in
+		// an array we will return this list of methods so they can be joined up.
+		foreach ($this->getMethods($options) as $method)
+		{
+			$stubs[] = $this->files->get(__DIR__."/stubs/{$method}.stub");
+		}
+
+		return $stubs;
+	}
+
+	/**
+	 * Get the applicable methods based on the options.
+	 *
+	 * @param  array  $options
+	 * @return array
+	 */
+	protected function getMethods($options)
+	{
+		if (isset($options['only']) && count($options['only']) > 0)
+		{
+			return $options['only'];
+		}
+		elseif (isset($options['except']) && count($options['except']) > 0)
+		{
+			return array_diff($this->defaults, $options['except']);
+		}
+
+		return $this->defaults;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/controller.stub
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/controller.stub b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/controller.stub
new file mode 100755
index 0000000..b6d02dd
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/controller.stub
@@ -0,0 +1,7 @@
+<?php{{namespace}}
+
+class {{class}} extends \BaseController {
+
+{{methods}}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/create.stub
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/create.stub b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/create.stub
new file mode 100755
index 0000000..aa59afd
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/create.stub
@@ -0,0 +1,9 @@
+	/**
+	 * Show the form for creating a new resource.
+	 *
+	 * @return Response
+	 */
+	public function create()
+	{
+		//
+	}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/destroy.stub
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/destroy.stub b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/destroy.stub
new file mode 100755
index 0000000..24abe54
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/destroy.stub
@@ -0,0 +1,10 @@
+	/**
+	 * Remove the specified resource from storage.
+	 *
+	 * @param  int  $id
+	 * @return Response
+	 */
+	public function destroy($id)
+	{
+		//
+	}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/edit.stub
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/edit.stub b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/edit.stub
new file mode 100755
index 0000000..ed60754
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/edit.stub
@@ -0,0 +1,10 @@
+	/**
+	 * Show the form for editing the specified resource.
+	 *
+	 * @param  int  $id
+	 * @return Response
+	 */
+	public function edit($id)
+	{
+		//
+	}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/index.stub
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/index.stub b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/index.stub
new file mode 100755
index 0000000..8238ea1
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/index.stub
@@ -0,0 +1,9 @@
+	/**
+	 * Display a listing of the resource.
+	 *
+	 * @return Response
+	 */
+	public function index()
+	{
+		//
+	}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/show.stub
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/show.stub b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/show.stub
new file mode 100755
index 0000000..f2001e4
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/show.stub
@@ -0,0 +1,10 @@
+	/**
+	 * Display the specified resource.
+	 *
+	 * @param  int  $id
+	 * @return Response
+	 */
+	public function show($id)
+	{
+		//
+	}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/store.stub
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/store.stub b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/store.stub
new file mode 100755
index 0000000..a4d28d6
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/store.stub
@@ -0,0 +1,9 @@
+	/**
+	 * Store a newly created resource in storage.
+	 *
+	 * @return Response
+	 */
+	public function store()
+	{
+		//
+	}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/update.stub
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/update.stub b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/update.stub
new file mode 100755
index 0000000..e8e6c06
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Generators/stubs/update.stub
@@ -0,0 +1,10 @@
+	/**
+	 * Update the specified resource in storage.
+	 *
+	 * @param  int  $id
+	 * @return Response
+	 */
+	public function update($id)
+	{
+		//
+	}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php
new file mode 100644
index 0000000..be14f00
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php
@@ -0,0 +1,22 @@
+<?php namespace Illuminate\Routing\Matching;
+
+use Illuminate\Http\Request;
+use Illuminate\Routing\Route;
+
+class HostValidator implements ValidatorInterface {
+
+	/**
+	 * Validate a given rule against a route and request.
+	 *
+	 * @param  \Illuminate\Routing\Route  $route
+	 * @param  \Illuminate\Http\Request  $request
+	 * @return bool
+	 */
+	public function matches(Route $route, Request $request)
+	{
+		if (is_null($route->getCompiled()->getHostRegex())) return true;
+
+		return preg_match($route->getCompiled()->getHostRegex(), $request->getHost());
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php
new file mode 100644
index 0000000..211bc30
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php
@@ -0,0 +1,20 @@
+<?php namespace Illuminate\Routing\Matching;
+
+use Illuminate\Http\Request;
+use Illuminate\Routing\Route;
+
+class MethodValidator implements ValidatorInterface {
+
+	/**
+	 * Validate a given rule against a route and request.
+	 *
+	 * @param  \Illuminate\Routing\Route  $route
+	 * @param  \Illuminate\Http\Request  $request
+	 * @return bool
+	 */
+	public function matches(Route $route, Request $request)
+	{
+		return in_array($request->getMethod(), $route->methods());
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php
new file mode 100644
index 0000000..009bb94
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php
@@ -0,0 +1,29 @@
+<?php namespace Illuminate\Routing\Matching;
+
+use Illuminate\Http\Request;
+use Illuminate\Routing\Route;
+
+class SchemeValidator implements ValidatorInterface {
+
+	/**
+	 * Validate a given rule against a route and request.
+	 *
+	 * @param  \Illuminate\Routing\Route  $route
+	 * @param  \Illuminate\Http\Request  $request
+	 * @return bool
+	 */
+	public function matches(Route $route, Request $request)
+	{
+		if ($route->httpOnly())
+		{
+			return ! $request->secure();
+		}
+		elseif ($route->secure())
+		{
+			return $request->secure();
+		}
+
+		return true;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php
new file mode 100644
index 0000000..b0b4302
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php
@@ -0,0 +1,22 @@
+<?php namespace Illuminate\Routing\Matching;
+
+use Illuminate\Http\Request;
+use Illuminate\Routing\Route;
+
+class UriValidator implements ValidatorInterface {
+
+	/**
+	 * Validate a given rule against a route and request.
+	 *
+	 * @param  \Illuminate\Routing\Route  $route
+	 * @param  \Illuminate\Http\Request  $request
+	 * @return bool
+	 */
+	public function matches(Route $route, Request $request)
+	{
+		$path = $request->path() == '/' ? '/' : '/'.$request->path();
+
+		return preg_match($route->getCompiled()->getRegex(), rawurldecode($path));
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php
new file mode 100644
index 0000000..65e5638
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php
@@ -0,0 +1,17 @@
+<?php namespace Illuminate\Routing\Matching;
+
+use Illuminate\Http\Request;
+use Illuminate\Routing\Route;
+
+interface ValidatorInterface {
+
+	/**
+	 * Validate a given rule against a route and request.
+	 *
+	 * @param  \Illuminate\Routing\Route  $route
+	 * @param  \Illuminate\Http\Request  $request
+	 * @return bool
+	 */
+	public function matches(Route $route, Request $request);
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Redirector.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Redirector.php b/vendor/laravel/framework/src/Illuminate/Routing/Redirector.php
new file mode 100755
index 0000000..2c4b7a8
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Redirector.php
@@ -0,0 +1,219 @@
+<?php namespace Illuminate\Routing;
+
+use Illuminate\Http\RedirectResponse;
+use Illuminate\Session\Store as SessionStore;
+
+class Redirector {
+
+	/**
+	 * The URL generator instance.
+	 *
+	 * @var \Illuminate\Routing\UrlGenerator
+	 */
+	protected $generator;
+
+	/**
+	 * The session store instance.
+	 *
+	 * @var \Illuminate\Session\Store
+	 */
+	protected $session;
+
+	/**
+	 * Create a new Redirector instance.
+	 *
+	 * @param  \Illuminate\Routing\UrlGenerator  $generator
+	 * @return void
+	 */
+	public function __construct(UrlGenerator $generator)
+	{
+		$this->generator = $generator;
+	}
+
+	/**
+	 * Create a new redirect response to the "home" route.
+	 *
+	 * @param  int  $status
+	 * @return \Illuminate\Http\RedirectResponse
+	 */
+	public function home($status = 302)
+	{
+		return $this->to($this->generator->route('home'), $status);
+	}
+
+	/**
+	 * Create a new redirect response to the previous location.
+	 *
+	 * @param  int    $status
+	 * @param  array  $headers
+	 * @return \Illuminate\Http\RedirectResponse
+	 */
+	public function back($status = 302, $headers = array())
+	{
+		$back = $this->generator->getRequest()->headers->get('referer');
+
+		return $this->createRedirect($back, $status, $headers);
+	}
+
+	/**
+	 * Create a new redirect response to the current URI.
+	 *
+	 * @param  int    $status
+	 * @param  array  $headers
+	 * @return \Illuminate\Http\RedirectResponse
+	 */
+	public function refresh($status = 302, $headers = array())
+	{
+		return $this->to($this->generator->getRequest()->path(), $status, $headers);
+	}
+
+	/**
+	 * Create a new redirect response, while putting the current URL in the session.
+	 *
+	 * @param  string  $path
+	 * @param  int     $status
+	 * @param  array   $headers
+	 * @param  bool    $secure
+	 * @return \Illuminate\Http\RedirectResponse
+	 */
+	public function guest($path, $status = 302, $headers = array(), $secure = null)
+	{
+		$this->session->put('url.intended', $this->generator->full());
+
+		return $this->to($path, $status, $headers, $secure);
+	}
+
+	/**
+	 * Create a new redirect response to the previously intended location.
+	 *
+	 * @param  string  $default
+	 * @param  int     $status
+	 * @param  array   $headers
+	 * @param  bool    $secure
+	 * @return \Illuminate\Http\RedirectResponse
+	 */
+	public function intended($default = '/', $status = 302, $headers = array(), $secure = null)
+	{
+		$path = $this->session->pull('url.intended', $default);
+
+		return $this->to($path, $status, $headers, $secure);
+	}
+
+	/**
+	 * Create a new redirect response to the given path.
+	 *
+	 * @param  string  $path
+	 * @param  int     $status
+	 * @param  array   $headers
+	 * @param  bool    $secure
+	 * @return \Illuminate\Http\RedirectResponse
+	 */
+	public function to($path, $status = 302, $headers = array(), $secure = null)
+	{
+		$path = $this->generator->to($path, array(), $secure);
+
+		return $this->createRedirect($path, $status, $headers);
+	}
+
+	/**
+	 * Create a new redirect response to an external URL (no validation).
+	 *
+	 * @param  string  $path
+	 * @param  int     $status
+	 * @param  array   $headers
+	 * @return \Illuminate\Http\RedirectResponse
+	 */
+	public function away($path, $status = 302, $headers = array())
+	{
+		return $this->createRedirect($path, $status, $headers);
+	}
+
+	/**
+	 * Create a new redirect response to the given HTTPS path.
+	 *
+	 * @param  string  $path
+	 * @param  int     $status
+	 * @param  array   $headers
+	 * @return \Illuminate\Http\RedirectResponse
+	 */
+	public function secure($path, $status = 302, $headers = array())
+	{
+		return $this->to($path, $status, $headers, true);
+	}
+
+	/**
+	 * Create a new redirect response to a named route.
+	 *
+	 * @param  string  $route
+	 * @param  array   $parameters
+	 * @param  int     $status
+	 * @param  array   $headers
+	 * @return \Illuminate\Http\RedirectResponse
+	 */
+	public function route($route, $parameters = array(), $status = 302, $headers = array())
+	{
+		$path = $this->generator->route($route, $parameters);
+
+		return $this->to($path, $status, $headers);
+	}
+
+	/**
+	 * Create a new redirect response to a controller action.
+	 *
+	 * @param  string  $action
+	 * @param  array   $parameters
+	 * @param  int     $status
+	 * @param  array   $headers
+	 * @return \Illuminate\Http\RedirectResponse
+	 */
+	public function action($action, $parameters = array(), $status = 302, $headers = array())
+	{
+		$path = $this->generator->action($action, $parameters);
+
+		return $this->to($path, $status, $headers);
+	}
+
+	/**
+	 * Create a new redirect response.
+	 *
+	 * @param  string  $path
+	 * @param  int     $status
+	 * @param  array   $headers
+	 * @return \Illuminate\Http\RedirectResponse
+	 */
+	protected function createRedirect($path, $status, $headers)
+	{
+		$redirect = new RedirectResponse($path, $status, $headers);
+
+		if (isset($this->session))
+		{
+			$redirect->setSession($this->session);
+		}
+
+		$redirect->setRequest($this->generator->getRequest());
+
+		return $redirect;
+	}
+
+	/**
+	 * Get the URL generator instance.
+	 *
+	 * @return  \Illuminate\Routing\UrlGenerator
+	 */
+	public function getUrlGenerator()
+	{
+		return $this->generator;
+	}
+
+	/**
+	 * Set the active session store.
+	 *
+	 * @param  \Illuminate\Session\Store  $session
+	 * @return void
+	 */
+	public function setSession(SessionStore $session)
+	{
+		$this->session = $session;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/Route.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Route.php b/vendor/laravel/framework/src/Illuminate/Routing/Route.php
new file mode 100755
index 0000000..093014f
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/Route.php
@@ -0,0 +1,814 @@
+<?php namespace Illuminate\Routing;
+
+use Illuminate\Http\Request;
+use Illuminate\Routing\Matching\UriValidator;
+use Illuminate\Routing\Matching\HostValidator;
+use Illuminate\Routing\Matching\MethodValidator;
+use Illuminate\Routing\Matching\SchemeValidator;
+use Symfony\Component\Routing\Route as SymfonyRoute;
+
+class Route {
+
+	/**
+	 * The URI pattern the route responds to.
+	 *
+	 * @var string
+	 */
+	protected $uri;
+
+	/**
+	 * The HTTP methods the route responds to.
+	 *
+	 * @var array
+	 */
+	protected $methods;
+
+	/**
+	 * The route action array.
+	 *
+	 * @var array
+	 */
+	protected $action;
+
+	/**
+	 * The default values for the route.
+	 *
+	 * @var array
+	 */
+	protected $defaults = array();
+
+	/**
+	 * The regular expression requirements.
+	 *
+	 * @var array
+	 */
+	protected $wheres = array();
+
+	/**
+	 * The array of matched parameters.
+	 *
+	 * @var array
+	 */
+	protected $parameters;
+
+	/**
+	 * The parameter names for the route.
+	 *
+	 * @var array|null
+	 */
+	protected $parameterNames;
+
+	/**
+	 * The compiled version of the route.
+	 *
+	 * @var \Symfony\Component\Routing\CompiledRoute
+	 */
+	protected $compiled;
+
+	/**
+	 * The validators used by the routes.
+	 *
+	 * @var array
+	 */
+	protected static $validators;
+
+	/**
+	 * Create a new Route instance.
+	 *
+	 * @param  array   $methods
+	 * @param  string  $uri
+	 * @param  \Closure|array  $action
+	 * @return void
+	 */
+	public function __construct($methods, $uri, $action)
+	{
+		$this->uri = $uri;
+		$this->methods = (array) $methods;
+		$this->action = $this->parseAction($action);
+
+		if (in_array('GET', $this->methods) && ! in_array('HEAD', $this->methods))
+		{
+			$this->methods[] = 'HEAD';
+		}
+
+		if (isset($this->action['prefix']))
+		{
+			$this->prefix($this->action['prefix']);
+		}
+	}
+
+	/**
+	 * Run the route action and return the response.
+	 *
+	 * @return mixed
+	 */
+	public function run()
+	{
+		$parameters = array_filter($this->parameters(), function($p) { return isset($p); });
+
+		return call_user_func_array($this->action['uses'], $parameters);
+	}
+
+	/**
+	 * Determine if the route matches given request.
+	 *
+	 * @param  \Illuminate\Http\Request  $request
+	 * @param  bool  $includingMethod
+	 * @return bool
+	 */
+	public function matches(Request $request, $includingMethod = true)
+	{
+		$this->compileRoute();
+
+		foreach ($this->getValidators() as $validator)
+		{
+			if ( ! $includingMethod && $validator instanceof MethodValidator) continue;
+
+			if ( ! $validator->matches($this, $request)) return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Compile the route into a Symfony CompiledRoute instance.
+	 *
+	 * @return void
+	 */
+	protected function compileRoute()
+	{
+		$optionals = $this->extractOptionalParameters();
+
+		$uri = preg_replace('/\{(\w+?)\?\}/', '{$1}', $this->uri);
+
+		$this->compiled = with(
+
+			new SymfonyRoute($uri, $optionals, $this->wheres, array(), $this->domain() ?: '')
+
+		)->compile();
+	}
+
+	/**
+	 * Get the optional parameters for the route.
+	 *
+	 * @return array
+	 */
+	protected function extractOptionalParameters()
+	{
+		preg_match_all('/\{(\w+?)\?\}/', $this->uri, $matches);
+
+		return isset($matches[1]) ? array_fill_keys($matches[1], null) : [];
+	}
+
+	/**
+	 * Get the "before" filters for the route.
+	 *
+	 * @return array
+	 */
+	public function beforeFilters()
+	{
+		if ( ! isset($this->action['before'])) return array();
+
+		return $this->parseFilters($this->action['before']);
+	}
+
+	/**
+	 * Get the "after" filters for the route.
+	 *
+	 * @return array
+	 */
+	public function afterFilters()
+	{
+		if ( ! isset($this->action['after'])) return array();
+
+		return $this->parseFilters($this->action['after']);
+	}
+
+	/**
+	 * Parse the given filter string.
+	 *
+	 * @param  string  $filters
+	 * @return array
+	 */
+	public static function parseFilters($filters)
+	{
+		return array_build(static::explodeFilters($filters), function($key, $value)
+		{
+			return Route::parseFilter($value);
+		});
+	}
+
+	/**
+	 * Turn the filters into an array if they aren't already.
+	 *
+	 * @param  array|string  $filters
+	 * @return array
+	 */
+	protected static function explodeFilters($filters)
+	{
+		if (is_array($filters)) return static::explodeArrayFilters($filters);
+
+		return array_map('trim', explode('|', $filters));
+	}
+
+	/**
+	 * Flatten out an array of filter declarations.
+	 *
+	 * @param  array  $filters
+	 * @return array
+	 */
+	protected static function explodeArrayFilters(array $filters)
+	{
+		$results = array();
+
+		foreach ($filters as $filter)
+		{
+			$results = array_merge($results, array_map('trim', explode('|', $filter)));
+		}
+
+		return $results;
+	}
+
+	/**
+	 * Parse the given filter into name and parameters.
+	 *
+	 * @param  string  $filter
+	 * @return array
+	 */
+	public static function parseFilter($filter)
+	{
+		if ( ! str_contains($filter, ':')) return array($filter, array());
+
+		return static::parseParameterFilter($filter);
+	}
+
+	/**
+	 * Parse a filter with parameters.
+	 *
+	 * @param  string  $filter
+	 * @return array
+	 */
+	protected static function parseParameterFilter($filter)
+	{
+		list($name, $parameters) = explode(':', $filter, 2);
+
+		return array($name, explode(',', $parameters));
+	}
+
+	/**
+	 * Get a given parameter from the route.
+	 *
+	 * @param  string  $name
+	 * @param  mixed   $default
+	 * @return string
+	 */
+	public function getParameter($name, $default = null)
+	{
+		return $this->parameter($name, $default);
+	}
+
+	/**
+	 * Get a given parameter from the route.
+	 *
+	 * @param  string  $name
+	 * @param  mixed   $default
+	 * @return string
+	 */
+	public function parameter($name, $default = null)
+	{
+		return array_get($this->parameters(), $name, $default);
+	}
+
+	/**
+	 * Set a parameter to the given value.
+	 *
+	 * @param  string  $name
+	 * @param  mixed   $value
+	 * @return void
+	 */
+	public function setParameter($name, $value)
+	{
+		$this->parameters();
+
+		$this->parameters[$name] = $value;
+	}
+
+	/**
+	 * Unset a parameter on the route if it is set.
+	 *
+	 * @param  string  $name
+	 * @return void
+	 */
+	public function forgetParameter($name)
+	{
+		$this->parameters();
+
+		unset($this->parameters[$name]);
+	}
+
+	/**
+	 * Get the key / value list of parameters for the route.
+	 *
+	 * @return array
+	 *
+	 * @throws \LogicException
+	 */
+	public function parameters()
+	{
+		if (isset($this->parameters))
+		{
+			return array_map(function($value)
+			{
+				return is_string($value) ? rawurldecode($value) : $value;
+
+			}, $this->parameters);
+		}
+
+		throw new \LogicException("Route is not bound.");
+	}
+
+	/**
+	 * Get the key / value list of parameters without null values.
+	 *
+	 * @return array
+	 */
+	public function parametersWithoutNulls()
+	{
+		return array_filter($this->parameters(), function($p) { return ! is_null($p); });
+	}
+
+	/**
+	 * Get all of the parameter names for the route.
+	 *
+	 * @return array
+	 */
+	public function parameterNames()
+	{
+		if (isset($this->parameterNames)) return $this->parameterNames;
+
+		return $this->parameterNames = $this->compileParameterNames();
+	}
+
+	/**
+	 * Get the parameter names for the route.
+	 *
+	 * @return array
+	 */
+	protected function compileParameterNames()
+	{
+		preg_match_all('/\{(.*?)\}/', $this->domain().$this->uri, $matches);
+
+		return array_map(function($m) { return trim($m, '?'); }, $matches[1]);
+	}
+
+	/**
+	 * Bind the route to a given request for execution.
+	 *
+	 * @param  \Illuminate\Http\Request  $request
+	 * @return $this
+	 */
+	public function bind(Request $request)
+	{
+		$this->compileRoute();
+
+		$this->bindParameters($request);
+
+		return $this;
+	}
+
+	/**
+	 * Extract the parameter list from the request.
+	 *
+	 * @param  \Illuminate\Http\Request  $request
+	 * @return array
+	 */
+	public function bindParameters(Request $request)
+	{
+		// If the route has a regular expression for the host part of the URI, we will
+		// compile that and get the parameter matches for this domain. We will then
+		// merge them into this parameters array so that this array is completed.
+		$params = $this->matchToKeys(
+
+			array_slice($this->bindPathParameters($request), 1)
+
+		);
+
+		// If the route has a regular expression for the host part of the URI, we will
+		// compile that and get the parameter matches for this domain. We will then
+		// merge them into this parameters array so that this array is completed.
+		if ( ! is_null($this->compiled->getHostRegex()))
+		{
+			$params = $this->bindHostParameters(
+				$request, $params
+			);
+		}
+
+		return $this->parameters = $this->replaceDefaults($params);
+	}
+
+	/**
+	 * Get the parameter matches for the path portion of the URI.
+	 *
+	 * @param  \Illuminate\Http\Request  $request
+	 * @return array
+	 */
+	protected function bindPathParameters(Request $request)
+	{
+		preg_match($this->compiled->getRegex(), '/'.$request->decodedPath(), $matches);
+
+		return $matches;
+	}
+
+	/**
+	 * Extract the parameter list from the host part of the request.
+	 *
+	 * @param  \Illuminate\Http\Request  $request
+	 * @param  array  $parameters
+	 * @return array
+	 */
+	protected function bindHostParameters(Request $request, $parameters)
+	{
+		preg_match($this->compiled->getHostRegex(), $request->getHost(), $matches);
+
+		return array_merge($this->matchToKeys(array_slice($matches, 1)), $parameters);
+	}
+
+	/**
+	 * Combine a set of parameter matches with the route's keys.
+	 *
+	 * @param  array  $matches
+	 * @return array
+	 */
+	protected function matchToKeys(array $matches)
+	{
+		if (count($this->parameterNames()) == 0) return array();
+
+		$parameters = array_intersect_key($matches, array_flip($this->parameterNames()));
+
+		return array_filter($parameters, function($value)
+		{
+			return is_string($value) && strlen($value) > 0;
+		});
+	}
+
+	/**
+	 * Replace null parameters with their defaults.
+	 *
+	 * @param  array  $parameters
+	 * @return array
+	 */
+	protected function replaceDefaults(array $parameters)
+	{
+		foreach ($parameters as $key => &$value)
+		{
+			$value = isset($value) ? $value : array_get($this->defaults, $key);
+		}
+
+		return $parameters;
+	}
+
+	/**
+	 * Parse the route action into a standard array.
+	 *
+	 * @param  callable|array  $action
+	 * @return array
+	 */
+	protected function parseAction($action)
+	{
+		// If the action is already a Closure instance, we will just set that instance
+		// as the "uses" property, because there is nothing else we need to do when
+		// it is available. Otherwise we will need to find it in the action list.
+		if (is_callable($action))
+		{
+			return array('uses' => $action);
+		}
+
+		// If no "uses" property has been set, we will dig through the array to find a
+		// Closure instance within this list. We will set the first Closure we come
+		// across into the "uses" property that will get fired off by this route.
+		elseif ( ! isset($action['uses']))
+		{
+			$action['uses'] = $this->findClosure($action);
+		}
+
+		return $action;
+	}
+
+	/**
+	 * Find the Closure in an action array.
+	 *
+	 * @param  array  $action
+	 * @return \Closure
+	 */
+	protected function findClosure(array $action)
+	{
+		return array_first($action, function($key, $value)
+		{
+			return is_callable($value);
+		});
+	}
+
+	/**
+	 * Get the route validators for the instance.
+	 *
+	 * @return array
+	 */
+	public static function getValidators()
+	{
+		if (isset(static::$validators)) return static::$validators;
+
+		// To match the route, we will use a chain of responsibility pattern with the
+		// validator implementations. We will spin through each one making sure it
+		// passes and then we will know if the route as a whole matches request.
+		return static::$validators = array(
+			new MethodValidator, new SchemeValidator,
+			new HostValidator, new UriValidator,
+		);
+	}
+
+	/**
+	 * Add before filters to the route.
+	 *
+	 * @param  string  $filters
+	 * @return $this
+	 */
+	public function before($filters)
+	{
+		return $this->addFilters('before', $filters);
+	}
+
+	/**
+	 * Add after filters to the route.
+	 *
+	 * @param  string  $filters
+	 * @return $this
+	 */
+	public function after($filters)
+	{
+		return $this->addFilters('after', $filters);
+	}
+
+	/**
+	 * Add the given filters to the route by type.
+	 *
+	 * @param  string  $type
+	 * @param  string  $filters
+	 * @return $this
+	 */
+	protected function addFilters($type, $filters)
+	{
+		$filters = static::explodeFilters($filters);
+
+		if (isset($this->action[$type]))
+		{
+			$existing = static::explodeFilters($this->action[$type]);
+
+			$this->action[$type] = array_merge($existing, $filters);
+		}
+		else
+		{
+			$this->action[$type] = $filters;
+		}
+
+		return $this;
+	}
+
+	/**
+	 * Set a default value for the route.
+	 *
+	 * @param  string  $key
+	 * @param  mixed  $value
+	 * @return $this
+	 */
+	public function defaults($key, $value)
+	{
+		$this->defaults[$key] = $value;
+
+		return $this;
+	}
+
+	/**
+	 * Set a regular expression requirement on the route.
+	 *
+	 * @param  array|string  $name
+	 * @param  string  $expression
+	 * @return $this
+	 */
+	public function where($name, $expression = null)
+	{
+		foreach ($this->parseWhere($name, $expression) as $name => $expression)
+		{
+			$this->wheres[$name] = $expression;
+		}
+
+		return $this;
+	}
+
+	/**
+	 * Parse arguments to the where method into an array.
+	 *
+	 * @param  array|string  $name
+	 * @param  string  $expression
+	 * @return array
+	 */
+	protected function parseWhere($name, $expression)
+	{
+		return is_array($name) ? $name : array($name => $expression);
+	}
+
+	/**
+	 * Set a list of regular expression requirements on the route.
+	 *
+	 * @param  array  $wheres
+	 * @return $this
+	 */
+	protected function whereArray(array $wheres)
+	{
+		foreach ($wheres as $name => $expression)
+		{
+			$this->where($name, $expression);
+		}
+
+		return $this;
+	}
+
+	/**
+	 * Add a prefix to the route URI.
+	 *
+	 * @param  string  $prefix
+	 * @return $this
+	 */
+	public function prefix($prefix)
+	{
+		$this->uri = trim($prefix, '/').'/'.trim($this->uri, '/');
+
+		return $this;
+	}
+
+	/**
+	 * Get the URI associated with the route.
+	 *
+	 * @return string
+	 */
+	public function getPath()
+	{
+		return $this->uri();
+	}
+
+	/**
+	 * Get the URI associated with the route.
+	 *
+	 * @return string
+	 */
+	public function uri()
+	{
+		return $this->uri;
+	}
+
+	/**
+	 * Get the HTTP verbs the route responds to.
+	 *
+	 * @return array
+	 */
+	public function getMethods()
+	{
+		return $this->methods();
+	}
+
+	/**
+	 * Get the HTTP verbs the route responds to.
+	 *
+	 * @return array
+	 */
+	public function methods()
+	{
+		return $this->methods;
+	}
+
+	/**
+	 * Determine if the route only responds to HTTP requests.
+	 *
+	 * @return bool
+	 */
+	public function httpOnly()
+	{
+		return in_array('http', $this->action, true);
+	}
+
+	/**
+	 * Determine if the route only responds to HTTPS requests.
+	 *
+	 * @return bool
+	 */
+	public function httpsOnly()
+	{
+		return $this->secure();
+	}
+
+	/**
+	 * Determine if the route only responds to HTTPS requests.
+	 *
+	 * @return bool
+	 */
+	public function secure()
+	{
+		return in_array('https', $this->action, true);
+	}
+
+	/**
+	 * Get the domain defined for the route.
+	 *
+	 * @return string|null
+	 */
+	public function domain()
+	{
+		return isset($this->action['domain']) ? $this->action['domain'] : null;
+	}
+
+	/**
+	 * Get the URI that the route responds to.
+	 *
+	 * @return string
+	 */
+	public function getUri()
+	{
+		return $this->uri;
+	}
+
+	/**
+	 * Set the URI that the route responds to.
+	 *
+	 * @param  string  $uri
+	 * @return \Illuminate\Routing\Route
+	 */
+	public function setUri($uri)
+	{
+		$this->uri = $uri;
+
+		return $this;
+	}
+
+	/**
+	 * Get the prefix of the route instance.
+	 *
+	 * @return string
+	 */
+	public function getPrefix()
+	{
+		return isset($this->action['prefix']) ? $this->action['prefix'] : null;
+	}
+
+	/**
+	 * Get the name of the route instance.
+	 *
+	 * @return string
+	 */
+	public function getName()
+	{
+		return isset($this->action['as']) ? $this->action['as'] : null;
+	}
+
+	/**
+	 * Get the action name for the route.
+	 *
+	 * @return string
+	 */
+	public function getActionName()
+	{
+		return isset($this->action['controller']) ? $this->action['controller'] : 'Closure';
+	}
+
+	/**
+	 * Get the action array for the route.
+	 *
+	 * @return array
+	 */
+	public function getAction()
+	{
+		return $this->action;
+	}
+
+	/**
+	 * Set the action array for the route.
+	 *
+	 * @param  array  $action
+	 * @return $this
+	 */
+	public function setAction(array $action)
+	{
+		$this->action = $action;
+
+		return $this;
+	}
+
+	/**
+	 * Get the compiled version of the route.
+	 *
+	 * @return \Symfony\Component\Routing\CompiledRoute
+	 */
+	public function getCompiled()
+	{
+		return $this->compiled;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php
new file mode 100644
index 0000000..abfea49
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php
@@ -0,0 +1,305 @@
+<?php namespace Illuminate\Routing;
+
+use Countable;
+use ArrayIterator;
+use IteratorAggregate;
+use Illuminate\Http\Request;
+use Illuminate\Http\Response;
+use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
+use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
+
+class RouteCollection implements Countable, IteratorAggregate {
+
+	/**
+	 * An array of the routes keyed by method.
+	 *
+	 * @var array
+	 */
+	protected $routes = array();
+
+	/**
+	 * An flattened array of all of the routes.
+	 *
+	 * @var array
+	 */
+	protected $allRoutes = array();
+
+	/**
+	 * A look-up table of routes by their names.
+	 *
+	 * @var array
+	 */
+	protected $nameList = array();
+
+	/**
+	 * A look-up table of routes by controller action.
+	 *
+	 * @var array
+	 */
+	protected $actionList = array();
+
+	/**
+	 * Add a Route instance to the collection.
+	 *
+	 * @param  \Illuminate\Routing\Route  $route
+	 * @return \Illuminate\Routing\Route
+	 */
+	public function add(Route $route)
+	{
+		$this->addToCollections($route);
+
+		$this->addLookups($route);
+
+		return $route;
+	}
+
+	/**
+	 * Add the given route to the arrays of routes.
+	 *
+	 * @param  \Illuminate\Routing\Route  $route
+	 * @return void
+	 */
+	protected function addToCollections($route)
+	{
+		$domainAndUri = $route->domain().$route->getUri();
+
+		foreach ($route->methods() as $method)
+		{
+			$this->routes[$method][$domainAndUri] = $route;
+		}
+
+		$this->allRoutes[$method.$domainAndUri] = $route;
+	}
+
+	/**
+	 * Add the route to any look-up tables if necessary.
+	 *
+	 * @param  \Illuminate\Routing\Route  $route
+	 * @return void
+	 */
+	protected function addLookups($route)
+	{
+		// If the route has a name, we will add it to the name look-up table so that we
+		// will quickly be able to find any route associate with a name and not have
+		// to iterate through every route every time we need to perform a look-up.
+		$action = $route->getAction();
+
+		if (isset($action['as']))
+		{
+			$this->nameList[$action['as']] = $route;
+		}
+
+		// When the route is routing to a controller we will also store the action that
+		// is used by the route. This will let us reverse route to controllers while
+		// processing a request and easily generate URLs to the given controllers.
+		if (isset($action['controller']))
+		{
+			$this->addToActionList($action, $route);
+		}
+	}
+
+	/**
+	 * Add a route to the controller action dictionary.
+	 *
+	 * @param  array  $action
+	 * @param  \Illuminate\Routing\Route  $route
+	 * @return void
+	 */
+	protected function addToActionList($action, $route)
+	{
+		if ( ! isset($this->actionList[$action['controller']]))
+		{
+			$this->actionList[$action['controller']] = $route;
+		}
+	}
+
+	/**
+	 * Find the first route matching a given request.
+	 *
+	 * @param  \Illuminate\Http\Request  $request
+	 * @return \Illuminate\Routing\Route
+	 *
+	 * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
+	 */
+	public function match(Request $request)
+	{
+		$routes = $this->get($request->getMethod());
+
+		// First, we will see if we can find a matching route for this current request
+		// method. If we can, great, we can just return it so that it can be called
+		// by the consumer. Otherwise we will check for routes with another verb.
+		$route = $this->check($routes, $request);
+
+		if ( ! is_null($route))
+		{
+			return $route->bind($request);
+		}
+
+		// If no route was found, we will check if a matching is route is specified on
+		// another HTTP verb. If it is we will need to throw a MethodNotAllowed and
+		// inform the user agent of which HTTP verb it should use for this route.
+		$others = $this->checkForAlternateVerbs($request);
+
+		if (count($others) > 0)
+		{
+			return $this->getOtherMethodsRoute($request, $others);
+		}
+
+		throw new NotFoundHttpException;
+	}
+
+	/**
+	 * Determine if any routes match on another HTTP verb.
+	 *
+	 * @param  \Illuminate\Http\Request  $request
+	 * @return array
+	 */
+	protected function checkForAlternateVerbs($request)
+	{
+		$methods = array_diff(Router::$verbs, array($request->getMethod()));
+
+		// Here we will spin through all verbs except for the current request verb and
+		// check to see if any routes respond to them. If they do, we will return a
+		// proper error response with the correct headers on the response string.
+		$others = array();
+
+		foreach ($methods as $method)
+		{
+			if ( ! is_null($this->check($this->get($method), $request, false)))
+			{
+				$others[] = $method;
+			}
+		}
+
+		return $others;
+	}
+
+	/**
+	 * Get a route (if necessary) that responds when other available methods are present.
+	 *
+	 * @param  \Illuminate\Http\Request  $request
+	 * @param  array  $others
+	 * @return \Illuminate\Routing\Route
+	 *
+	 * @throws \Symfony\Component\Routing\Exception\MethodNotAllowedHttpException
+	 */
+	protected function getOtherMethodsRoute($request, array $others)
+	{
+		if ($request->method() == 'OPTIONS')
+		{
+			return (new Route('OPTIONS', $request->path(), function() use ($others)
+			{
+				return new Response('', 200, array('Allow' => implode(',', $others)));
+
+			}))->bind($request);
+		}
+
+		$this->methodNotAllowed($others);
+	}
+
+	/**
+	 * Throw a method not allowed HTTP exception.
+	 *
+	 * @param  array  $others
+	 * @return void
+	 *
+	 * @throws \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
+	 */
+	protected function methodNotAllowed(array $others)
+	{
+		throw new MethodNotAllowedHttpException($others);
+	}
+
+	/**
+	 * Determine if a route in the array matches the request.
+	 *
+	 * @param  array  $routes
+	 * @param  \Illuminate\http\Request  $request
+	 * @param  bool  $includingMethod
+	 * @return \Illuminate\Routing\Route|null
+	 */
+	protected function check(array $routes, $request, $includingMethod = true)
+	{
+		return array_first($routes, function($key, $value) use ($request, $includingMethod)
+		{
+			return $value->matches($request, $includingMethod);
+		});
+	}
+
+	/**
+	 * Get all of the routes in the collection.
+	 *
+	 * @param  string|null  $method
+	 * @return array
+	 */
+	protected function get($method = null)
+	{
+		if (is_null($method)) return $this->getRoutes();
+
+		return array_get($this->routes, $method, array());
+	}
+
+	/**
+	 * Determine if the route collection contains a given named route.
+	 *
+	 * @param  string  $name
+	 * @return bool
+	 */
+	public function hasNamedRoute($name)
+	{
+		return ! is_null($this->getByName($name));
+	}
+
+	/**
+	 * Get a route instance by its name.
+	 *
+	 * @param  string  $name
+	 * @return \Illuminate\Routing\Route|null
+	 */
+	public function getByName($name)
+	{
+		return isset($this->nameList[$name]) ? $this->nameList[$name] : null;
+	}
+
+	/**
+	 * Get a route instance by its controller action.
+	 *
+	 * @param  string  $action
+	 * @return \Illuminate\Routing\Route|null
+	 */
+	public function getByAction($action)
+	{
+		return isset($this->actionList[$action]) ? $this->actionList[$action] : null;
+	}
+
+	/**
+	 * Get all of the routes in the collection.
+	 *
+	 * @return array
+	 */
+	public function getRoutes()
+	{
+		return array_values($this->allRoutes);
+	}
+
+	/**
+	 * Get an iterator for the items.
+	 *
+	 * @return \ArrayIterator
+	 */
+	public function getIterator()
+	{
+		return new ArrayIterator($this->getRoutes());
+	}
+
+	/**
+	 * Count the number of items in the collection.
+	 *
+	 * @return int
+	 */
+	public function count()
+	{
+		return count($this->getRoutes());
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Routing/RouteFiltererInterface.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteFiltererInterface.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteFiltererInterface.php
new file mode 100644
index 0000000..2cc0d12
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Routing/RouteFiltererInterface.php
@@ -0,0 +1,26 @@
+<?php namespace Illuminate\Routing;
+
+interface RouteFiltererInterface {
+
+	/**
+	 * Register a new filter with the router.
+	 *
+	 * @param  string  $name
+	 * @param  mixed  $callback
+	 * @return void
+	 */
+	public function filter($name, $callback);
+
+	/**
+	 * Call the given route filter.
+	 *
+	 * @param  string  $filter
+	 * @param  array  $parameters
+	 * @param  \Illuminate\Routing\Route  $route
+	 * @param  \Illuminate\Http\Request  $request
+	 * @param  \Illuminate\Http\Response|null $response
+	 * @return mixed
+	 */
+	public function callRouteFilter($filter, $parameters, $route, $request, $response = null);
+
+}