Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Unified Diff: utils/pub/source.dart

Issue 10690032: Make VersionSolver source- and description-aware. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « utils/pub/root_source.dart ('k') | utils/pub/utils.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/pub/source.dart
diff --git a/utils/pub/source.dart b/utils/pub/source.dart
index 8dbe1546343583b5c54c6e0de676f2de8e451b99..4e7db4980cd25e7d894d236b423e8fad1b997ad5 100644
--- a/utils/pub/source.dart
+++ b/utils/pub/source.dart
@@ -32,23 +32,24 @@ class Source {
abstract bool get shouldCache();
/**
- * Get the list of all versions that exist for package [name].
+ * Get the list of all versions that exist for the package described by
+ * [description].
*
* Note that this does *not* require the packages to be installed, which is
* the point. This is used during version resolution to determine which
* package versions are available to be installed (or already installed).
*/
- Future<List<Version>> getVersions(String name) {
+ Future<List<Version>> getVersions(description) {
// TODO(rnystrom): Do something better here.
throw "Source $name doesn't support versioning.";
}
/**
- * Loads the (possibly remote) pubspec for the desired [version] of the named
- * [package]. This will be called for packages that have not yet been
- * installed during the version resolution process.
+ * Loads the (possibly remote) pubspec for the package version identified by
+ * [id]. This will be called for packages that have not yet been installed
+ * during the version resolution process.
*/
- Future<Pubspec> describe(String package, Version version) {
+ Future<Pubspec> describe(PackageId id) {
// TODO(rnystrom): Figure out how non-default sources should handle this.
throw "Source $name doesn't support versioning.";
}
@@ -72,7 +73,7 @@ class Source {
* This doesn't need to be implemented if [shouldCache] is false.
*/
String systemCacheDirectory(PackageId id, String parent) =>
- join(parent, packageName(id));
+ join(parent, packageName(id.description));
/**
* When a [Pubspec] is parsed, it reads in the description for each
@@ -84,12 +85,23 @@ class Source {
void validateDescription(description) {}
/**
- * Returns a human-friendly name for the package identified by [id]. This
- * method should be light-weight. It doesn't need to validate that the given
- * package exists.
+ * Returns a human-friendly name for the package described by [description].
+ * This method should be light-weight. It doesn't need to validate that the
+ * given package exists.
*
* The package name should be lower-case and suitable for use in a filename.
* It may contain forward slashes.
*/
- String packageName(PackageId id) => id.description;
+ String packageName(description) => description;
+
+ /**
+ * Returns whether or not [description1] describes the same package as
+ * [description2] for this source. This method should be light-weight. It
+ * doesn't need to validate that either package exists.
+ *
+ * By default, this assumes both descriptions are strings and compares them
+ * for equality.
+ */
+ bool descriptionsEqual(description1, description2) =>
+ description1 == description2;
}
« no previous file with comments | « utils/pub/root_source.dart ('k') | utils/pub/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698