| Index: pkg/analyzer/lib/src/lint/pub.dart
|
| diff --git a/pkg/analyzer/lib/src/lint/pub.dart b/pkg/analyzer/lib/src/lint/pub.dart
|
| deleted file mode 100644
|
| index 8d12e134bb54aa213c11ad6633cf85897e1a69ce..0000000000000000000000000000000000000000
|
| --- a/pkg/analyzer/lib/src/lint/pub.dart
|
| +++ /dev/null
|
| @@ -1,430 +0,0 @@
|
| -// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -import 'dart:collection';
|
| -
|
| -import 'package:source_span/source_span.dart';
|
| -import 'package:yaml/yaml.dart';
|
| -
|
| -PSEntry _findEntry(YamlMap map, String key) {
|
| - PSEntry entry;
|
| - map.nodes.forEach((k, v) {
|
| - if (k is YamlScalar && key == k.toString()) {
|
| - entry = _processScalar(k, v);
|
| - }
|
| - });
|
| - return entry;
|
| -}
|
| -
|
| -PSDependencyList _processDependencies(YamlScalar key, YamlNode v) {
|
| - if (v is! YamlMap) {
|
| - return null;
|
| - }
|
| - YamlMap depsMap = v;
|
| -
|
| - _PSDependencyList deps = new _PSDependencyList(new _PSNode(key));
|
| - depsMap.nodes.forEach((k, v) => deps.add(new _PSDependency(k, v)));
|
| - return deps;
|
| -}
|
| -
|
| -PSGitRepo _processGitRepo(YamlScalar key, YamlNode v) {
|
| - if (v is! YamlMap) {
|
| - return null;
|
| - }
|
| - YamlMap hostMap = v;
|
| - // url: git://github.com/munificent/kittens.git
|
| - // ref: some-branch
|
| - _PSGitRepo repo = new _PSGitRepo();
|
| - repo.token = new _PSNode(key);
|
| - repo.ref = _findEntry(hostMap, 'ref');
|
| - repo.url = _findEntry(hostMap, 'url');
|
| - return repo;
|
| -}
|
| -
|
| -PSHost _processHost(YamlScalar key, YamlNode v) {
|
| - if (v is! YamlMap) {
|
| - return null;
|
| - }
|
| - YamlMap hostMap = v;
|
| - // name: transmogrify
|
| - // url: http://your-package-server.com
|
| - _PSHost host = new _PSHost();
|
| - host.token = new _PSNode(key);
|
| - host.name = _findEntry(hostMap, 'name');
|
| - host.url = _findEntry(hostMap, 'url');
|
| - return host;
|
| -}
|
| -
|
| -PSNodeList _processList(YamlScalar key, YamlNode v) {
|
| - if (v is! YamlList) {
|
| - return null;
|
| - }
|
| - YamlList nodeList = v;
|
| -
|
| - return new _PSNodeList(
|
| - new _PSNode(key), nodeList.nodes.map((n) => new _PSNode(n)));
|
| -}
|
| -
|
| -PSEntry _processScalar(YamlScalar key, YamlNode value) {
|
| - if (value is! YamlScalar) {
|
| - return null;
|
| - //WARN?
|
| - }
|
| - return new PSEntry(new _PSNode(key), new _PSNode(value));
|
| -}
|
| -
|
| -abstract class PSDependency {
|
| - PSGitRepo get git;
|
| - PSHost get host;
|
| - PSNode get name;
|
| - PSEntry get version;
|
| -}
|
| -
|
| -abstract class PSDependencyList extends Object
|
| - with IterableMixin<PSDependency> {}
|
| -
|
| -class PSEntry {
|
| - final PSNode key;
|
| - final PSNode value;
|
| - PSEntry(this.key, this.value);
|
| -
|
| - @override
|
| - String toString() => '${key != null ? (key.toString() + ': ') : ''}$value';
|
| -}
|
| -
|
| -abstract class PSGitRepo {
|
| - PSEntry get ref;
|
| - PSNode get token;
|
| - PSEntry get url;
|
| -}
|
| -
|
| -abstract class PSHost {
|
| - PSEntry get name;
|
| - PSNode get token;
|
| - PSEntry get url;
|
| -}
|
| -
|
| -abstract class PSNode {
|
| - SourceSpan get span;
|
| - String get text;
|
| -}
|
| -
|
| -abstract class PSNodeList extends Object with IterableMixin<PSNode> {
|
| - @override
|
| - Iterator<PSNode> get iterator;
|
| - PSNode get token;
|
| -}
|
| -
|
| -abstract class Pubspec {
|
| - factory Pubspec.parse(String source, {Uri sourceUrl}) =>
|
| - new _Pubspec(source, sourceUrl: sourceUrl);
|
| - PSEntry get author;
|
| - PSNodeList get authors;
|
| - PSDependencyList get dependencies;
|
| - PSEntry get description;
|
| - PSDependencyList get devDependencies;
|
| - PSEntry get documentation;
|
| - PSEntry get homepage;
|
| - PSEntry get name;
|
| - PSEntry get version;
|
| - accept(PubspecVisitor visitor);
|
| -}
|
| -
|
| -abstract class PubspecVisitor<T> {
|
| - T visitPackageAuthor(PSEntry author) => null;
|
| - T visitPackageAuthors(PSNodeList authors) => null;
|
| - T visitPackageDependencies(PSDependencyList dependencies) => null;
|
| - T visitPackageDependency(PSDependency dependency) => null;
|
| - T visitPackageDescription(PSEntry description) => null;
|
| - T visitPackageDevDependencies(PSDependencyList dependencies) => null;
|
| - T visitPackageDevDependency(PSDependency dependency) => null;
|
| - T visitPackageDocumentation(PSEntry documentation) => null;
|
| - T visitPackageHomepage(PSEntry homepage) => null;
|
| - T visitPackageName(PSEntry name) => null;
|
| - T visitPackageVersion(PSEntry version) => null;
|
| -}
|
| -
|
| -class _PSDependency extends PSDependency {
|
| - @override
|
| - PSNode name;
|
| - @override
|
| - PSEntry version;
|
| - @override
|
| - PSHost host;
|
| - @override
|
| - PSGitRepo git;
|
| -
|
| - factory _PSDependency(dynamic k, YamlNode v) {
|
| - if (k is! YamlScalar) {
|
| - return null;
|
| - }
|
| - YamlScalar key = k;
|
| -
|
| - _PSDependency dep = new _PSDependency._();
|
| -
|
| - dep.name = new _PSNode(key);
|
| -
|
| - if (v is YamlScalar) {
|
| - // Simple version
|
| - dep.version = new PSEntry(null, new _PSNode(v));
|
| - } else if (v is YamlMap) {
|
| - // hosted:
|
| - // name: transmogrify
|
| - // url: http://your-package-server.com
|
| - // version: '>=0.4.0 <1.0.0'
|
| - YamlMap details = v;
|
| - details.nodes.forEach((k, v) {
|
| - if (k is! YamlScalar) {
|
| - return;
|
| - }
|
| - YamlScalar key = k;
|
| - switch (key.toString()) {
|
| - case 'version':
|
| - dep.version = _processScalar(key, v);
|
| - break;
|
| - case 'hosted':
|
| - dep.host = _processHost(key, v);
|
| - break;
|
| - case 'git':
|
| - dep.git = _processGitRepo(key, v);
|
| - break;
|
| - }
|
| - });
|
| - }
|
| - return dep;
|
| - }
|
| -
|
| - _PSDependency._();
|
| -
|
| - @override
|
| - String toString() {
|
| - var sb = new StringBuffer();
|
| - if (name != null) {
|
| - sb.write('$name:');
|
| - }
|
| - var versionInfo = '';
|
| - if (version != null) {
|
| - if (version.key == null) {
|
| - versionInfo = ' $version';
|
| - } else {
|
| - versionInfo = '\n $version';
|
| - }
|
| - }
|
| - sb.writeln(versionInfo);
|
| - if (host != null) {
|
| - sb.writeln(host);
|
| - }
|
| - if (git != null) {
|
| - sb.writeln(git);
|
| - }
|
| - return sb.toString();
|
| - }
|
| -}
|
| -
|
| -class _PSDependencyList extends PSDependencyList {
|
| - final dependencies = <PSDependency>[];
|
| - final PSNode token;
|
| -
|
| - _PSDependencyList(this.token);
|
| -
|
| - @override
|
| - Iterator<PSDependency> get iterator => dependencies.iterator;
|
| -
|
| - add(PSDependency dependency) {
|
| - if (dependency != null) {
|
| - dependencies.add(dependency);
|
| - }
|
| - }
|
| -
|
| - @override
|
| - String toString() => '$token\n${dependencies.join(' ')}';
|
| -}
|
| -
|
| -class _PSGitRepo implements PSGitRepo {
|
| - @override
|
| - PSNode token;
|
| - @override
|
| - PSEntry ref;
|
| - @override
|
| - PSEntry url;
|
| - @override
|
| - String toString() => '''
|
| - $token:
|
| - $url
|
| - $ref''';
|
| -}
|
| -
|
| -class _PSHost implements PSHost {
|
| - @override
|
| - PSNode token;
|
| - @override
|
| - PSEntry name;
|
| - @override
|
| - PSEntry url;
|
| - @override
|
| - String toString() => '''
|
| - $token:
|
| - $name
|
| - $url''';
|
| -}
|
| -
|
| -class _PSNode implements PSNode {
|
| - @override
|
| - final String text;
|
| - @override
|
| - final SourceSpan span;
|
| -
|
| - _PSNode(YamlNode node)
|
| - : text = node.value?.toString(),
|
| - span = node.span;
|
| -
|
| - @override
|
| - String toString() => '$text';
|
| -}
|
| -
|
| -class _PSNodeList extends PSNodeList {
|
| - @override
|
| - final PSNode token;
|
| - final Iterable<PSNode> nodes;
|
| -
|
| - _PSNodeList(this.token, this.nodes);
|
| -
|
| - @override
|
| - Iterator<PSNode> get iterator => nodes.iterator;
|
| -
|
| - @override
|
| - String toString() => '''
|
| -$token:
|
| - - ${nodes.join('\n - ')}''';
|
| -}
|
| -
|
| -class _Pubspec implements Pubspec {
|
| - @override
|
| - PSEntry author;
|
| - @override
|
| - PSNodeList authors;
|
| - @override
|
| - PSEntry description;
|
| - @override
|
| - PSEntry documentation;
|
| - @override
|
| - PSEntry homepage;
|
| - @override
|
| - PSEntry name;
|
| - @override
|
| - PSEntry version;
|
| - @override
|
| - PSDependencyList dependencies;
|
| - @override
|
| - PSDependencyList devDependencies;
|
| -
|
| - _Pubspec(String src, {Uri sourceUrl}) {
|
| - try {
|
| - _parse(src, sourceUrl: sourceUrl);
|
| - } on Exception {
|
| - // ignore
|
| - }
|
| - }
|
| -
|
| - @override
|
| - void accept(PubspecVisitor visitor) {
|
| - if (author != null) {
|
| - visitor.visitPackageAuthor(author);
|
| - }
|
| - if (authors != null) {
|
| - visitor.visitPackageAuthors(authors);
|
| - }
|
| - if (description != null) {
|
| - visitor.visitPackageDescription(description);
|
| - }
|
| - if (documentation != null) {
|
| - visitor.visitPackageDocumentation(documentation);
|
| - }
|
| - if (homepage != null) {
|
| - visitor.visitPackageHomepage(homepage);
|
| - }
|
| - if (name != null) {
|
| - visitor.visitPackageName(name);
|
| - }
|
| - if (version != null) {
|
| - visitor.visitPackageVersion(version);
|
| - }
|
| - if (dependencies != null) {
|
| - visitor.visitPackageDependencies(dependencies);
|
| - dependencies.forEach((d) => visitor.visitPackageDependency(d));
|
| - }
|
| - if (devDependencies != null) {
|
| - visitor.visitPackageDevDependencies(devDependencies);
|
| - devDependencies.forEach((d) => visitor.visitPackageDevDependency(d));
|
| - }
|
| - }
|
| -
|
| - @override
|
| - String toString() {
|
| - var sb = new _StringBuilder();
|
| - sb.writelin(name);
|
| - sb.writelin(version);
|
| - sb.writelin(author);
|
| - sb.writelin(authors);
|
| - sb.writelin(description);
|
| - sb.writelin(homepage);
|
| - sb.writelin(dependencies);
|
| - sb.writelin(devDependencies);
|
| - return sb.toString();
|
| - }
|
| -
|
| - _parse(String src, {Uri sourceUrl}) {
|
| - var yaml = loadYamlNode(src, sourceUrl: sourceUrl);
|
| - if (yaml is! YamlMap) {
|
| - return;
|
| - }
|
| - YamlMap yamlMap = yaml;
|
| - yamlMap.nodes.forEach((k, v) {
|
| - if (k is! YamlScalar) {
|
| - return;
|
| - }
|
| - YamlScalar key = k;
|
| - switch (key.toString()) {
|
| - case 'author':
|
| - author = _processScalar(key, v);
|
| - break;
|
| - case 'authors':
|
| - authors = _processList(key, v);
|
| - break;
|
| - case 'homepage':
|
| - homepage = _processScalar(key, v);
|
| - break;
|
| - case 'name':
|
| - name = _processScalar(key, v);
|
| - break;
|
| - case 'description':
|
| - description = _processScalar(key, v);
|
| - break;
|
| - case 'documentation':
|
| - documentation = _processScalar(key, v);
|
| - break;
|
| - case 'dependencies':
|
| - dependencies = _processDependencies(key, v);
|
| - break;
|
| - case 'dev_dependencies':
|
| - devDependencies = _processDependencies(key, v);
|
| - break;
|
| - case 'version':
|
| - version = _processScalar(key, v);
|
| - break;
|
| - }
|
| - });
|
| - }
|
| -}
|
| -
|
| -class _StringBuilder {
|
| - StringBuffer buffer = new StringBuffer();
|
| - @override
|
| - String toString() => buffer.toString();
|
| - writelin(Object value) {
|
| - if (value != null) {
|
| - buffer.writeln(value);
|
| - }
|
| - }
|
| -}
|
|
|