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

Side by Side Diff: yaml/lib/yaml.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 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 unified diff | Download patch
« no previous file with comments | « yaml/lib/src/yaml_node_wrapper.dart ('k') | yaml/pubspec.yaml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 library yaml;
6
7 import 'src/loader.dart';
8 import 'src/style.dart';
9 import 'src/yaml_document.dart';
10 import 'src/yaml_exception.dart';
11 import 'src/yaml_node.dart';
12
13 export 'src/style.dart';
14 export 'src/utils.dart' show YamlWarningCallback, yamlWarningCallback;
15 export 'src/yaml_document.dart';
16 export 'src/yaml_exception.dart';
17 export 'src/yaml_node.dart' hide setSpan;
18
19 /// Loads a single document from a YAML string.
20 ///
21 /// If the string contains more than one document, this throws a
22 /// [YamlException]. In future releases, this will become an [ArgumentError].
23 ///
24 /// The return value is mostly normal Dart objects. However, since YAML mappings
25 /// support some key types that the default Dart map implementation doesn't
26 /// (NaN, lists, and maps), all maps in the returned document are [YamlMap]s.
27 /// These have a few small behavioral differences from the default Map
28 /// implementation; for details, see the [YamlMap] class.
29 ///
30 /// In future versions, maps will instead be [HashMap]s with a custom equality
31 /// operation.
32 ///
33 /// If [sourceUrl] is passed, it's used as the URL from which the YAML
34 /// originated for error reporting. It can be a [String], a [Uri], or `null`.
35 loadYaml(String yaml, {sourceUrl}) =>
36 loadYamlNode(yaml, sourceUrl: sourceUrl).value;
37
38 /// Loads a single document from a YAML string as a [YamlNode].
39 ///
40 /// This is just like [loadYaml], except that where [loadYaml] would return a
41 /// normal Dart value this returns a [YamlNode] instead. This allows the caller
42 /// to be confident that the return value will always be a [YamlNode].
43 YamlNode loadYamlNode(String yaml, {sourceUrl}) =>
44 loadYamlDocument(yaml, sourceUrl: sourceUrl).contents;
45
46 /// Loads a single document from a YAML string as a [YamlDocument].
47 ///
48 /// This is just like [loadYaml], except that where [loadYaml] would return a
49 /// normal Dart value this returns a [YamlDocument] instead. This allows the
50 /// caller to access document metadata.
51 YamlDocument loadYamlDocument(String yaml, {sourceUrl}) {
52 var loader = new Loader(yaml, sourceUrl: sourceUrl);
53 var document = loader.load();
54 if (document == null) {
55 return new YamlDocument.internal(
56 new YamlScalar.internalWithSpan(null, loader.span),
57 loader.span, null, const []);
58 }
59
60 var nextDocument = loader.load();
61 if (nextDocument != null) {
62 throw new YamlException("Only expected one document.", nextDocument.span);
63 }
64
65 return document;
66 }
67
68 /// Loads a stream of documents from a YAML string.
69 ///
70 /// The return value is mostly normal Dart objects. However, since YAML mappings
71 /// support some key types that the default Dart map implementation doesn't
72 /// (NaN, lists, and maps), all maps in the returned document are [YamlMap]s.
73 /// These have a few small behavioral differences from the default Map
74 /// implementation; for details, see the [YamlMap] class.
75 ///
76 /// In future versions, maps will instead be [HashMap]s with a custom equality
77 /// operation.
78 ///
79 /// If [sourceUrl] is passed, it's used as the URL from which the YAML
80 /// originated for error reporting. It can be a [String], a [Uri], or `null`.
81 YamlList loadYamlStream(String yaml, {sourceUrl}) {
82 var loader = new Loader(yaml, sourceUrl: sourceUrl);
83
84 var documents = [];
85 var document = loader.load();
86 while (document != null) {
87 documents.add(document);
88 document = loader.load();
89 }
90
91 return new YamlList.internal(
92 documents.map((document) => document.contents).toList(),
93 loader.span,
94 CollectionStyle.ANY);
95 }
96
97 /// Loads a stream of documents from a YAML string.
98 ///
99 /// This is like [loadYamlStream], except that it returns [YamlDocument]s with
100 /// metadata wrapping the document contents.
101 List<YamlDocument> loadYamlDocuments(String yaml, {sourceUrl}) {
102 var loader = new Loader(yaml, sourceUrl: sourceUrl);
103
104 var documents = [];
105 var document = loader.load();
106 while (document != null) {
107 documents.add(document);
108 document = loader.load();
109 }
110
111 return documents;
112 }
OLDNEW
« no previous file with comments | « yaml/lib/src/yaml_node_wrapper.dart ('k') | yaml/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698