support path activations
diff --git a/lib/pub_cache.dart b/lib/pub_cache.dart index a2c8b00..3f980e5 100644 --- a/lib/pub_cache.dart +++ b/lib/pub_cache.dart
@@ -185,6 +185,8 @@ } return null; }); + } else if (source == 'path') { + return new PackageRefImpl.path(key, m['version'], m['description']); } else { return new PackageRefImpl(source, key, m['version']); }
diff --git a/lib/src/impl.dart b/lib/src/impl.dart index fe6dfcb..a2b3e7f 100644 --- a/lib/src/impl.dart +++ b/lib/src/impl.dart
@@ -29,6 +29,10 @@ return new GitPackageRefImpl(name, ver, description, resolver); } + factory PackageRefImpl.path(String name, String ver, Map description) { + return new PathPackageRefImpl(name, ver, description); + } + Package resolve() => _resolver == null ? null : _resolver(this); } @@ -47,6 +51,25 @@ String get url => _description['url']; } +class PathPackageRefImpl extends PackageRefImpl { + final Map _description; + + PathPackageRefImpl(String name, String ver, this._description) : + super('path', name, ver); + + /// The path to the local package. + String get path => _description['path']; + + bool get relative => _description['relative'] == true; + + Package resolve() { + Directory dir = new Directory(path); + return dir.existsSync() ? new Package(dir, name, version) : null; + } +} + +/// A reference to a package in the pub cache (for instance, something in +/// `~/.pub-cache/hosted/pub.dartlang.org/`). class DirectoryPackageRef extends PackageRef { final String sourceType; final Directory directory; @@ -70,6 +93,7 @@ Package resolve() => new Package(directory, name, version); } +/// A reference to a package in the pub cache; something in `~/.pub-cache/git/`. class GitDirectoryPackageRef extends PackageRef { final String sourceType; final Directory directory;
diff --git a/tool/travis.sh b/tool/travis.sh index 8914355..dc1d87b 100755 --- a/tool/travis.sh +++ b/tool/travis.sh
@@ -9,7 +9,8 @@ # Activate some packages for use while running tests. pub global activate dart_coveralls -pub global activate --source git https://github.com/dart-lang/pub_cache.git +pub global activate --source git https://github.com/dart-lang/test.git +pub global activate --source path . # Verify that the libraries are error free. dartanalyzer --fatal-warnings \