drush-ops/drush — pull request #870 by jonhattan (2014-10-04 14:47:41+00:00)
Title: Ongoing work on update info engine.

This is an ongoing work to allow `pm-updatestatus` to work without update.module enabled. I'm doing this in a new `update_info` engine called `drush`.

This is not intented to be merged yet. I just want to see Travis complaining.

Within this commits there's a big refactoring of `release_info` engine to untangle it and convert into OO.

Any suggestion welcome!

Here're the API changes in the engine:

```diff
-release_info_fetch(&$request, $restrict_to = '', $select = 'never', $all = FALSE)
+drush_release_info_updatexml::selectReleaseBasedOnStrategy(&$request, $restrict_to = '', $select = 'never', $all = FALSE)

-release_info_get_releases($requests)
#Removed. This is done now in pm-releases callback.

-release_info_check_project($request, $type = NULL)
+drush_release_info_updatexml::checkProject($request, $type = NULL)

-release_info_print_releasenotes($requests, $print_status = TRUE, $tmpfile = NULL)
+UpdateServiceProject::getReleaseNotes()

-function updatexml_get_release_history_xml($request)
+drush_release_info_updatexml::getInstance($request, $cache_duration)

-updatexml_get_url($request)
+UpdateServiceProject::buildFetchUrl(array $request)

-updatexml_get_releases_from_xml($xml, $project)
+UpdateServiceProject::parseXml(SimpleXMLElement $xml)

-updatexml_determine_project_type($xml)
+UpdateServiceProject::getType()

-updatexml_best_release_found($releases)
+UpdateServiceProject::getBestRelease(array $releases)

-updatexml_specific_release_found($releases)
+UpdateServiceProject::getBestRelease(array $releases)

-updatexml_specific_release_version($request, $xml)
+UpdateServiceProject::getSpecificRelease($version)

-updatexml_most_appropriate_release($request, $xml)
+UpdateServiceProject::getRecommendedOrSupportedRelease()

-_release_info_compare_date($a, $b)
+UpdateServiceProject::compareDates($a, $b)

-release_info_filter_releases($releases, $all = FALSE, $restrict_to = '', $show_all_until_installed = TRUE)
+UpdateServiceProject::filterReleases($all = FALSE, $restrict_to = '', $show_all_until_installed = TRUE)
```