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

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

Issue 274953002: Bring the YAML package's style up to modern standards. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: code review Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « pkg/yaml/lib/src/yaml_map.dart ('k') | pkg/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
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 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 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /// A parser for [YAML](http://www.yaml.org/).
6 ///
7 /// ## Installing ##
8 ///
9 /// Use [pub][] to install this package. Add the following to your
10 /// `pubspec.yaml` file.
11 ///
12 /// dependencies:
13 /// yaml: any
14 ///
15 /// Then run `pub install`.
16 ///
17 /// For more information, see the
18 /// [yaml package on pub.dartlang.org][pkg].
19 ///
20 /// ## Using ##
21 ///
22 /// Use [loadYaml] to load a single document, or [loadYamlStream] to load a
23 /// stream of documents. For example:
24 ///
25 /// import 'package:yaml/yaml.dart';
26 /// main() {
27 /// var doc = loadYaml("YAML: YAML Ain't Markup Language");
28 /// print(doc['YAML']);
29 /// }
30 ///
31 /// This library currently doesn't support dumping to YAML. You should use
32 /// `JSON.encode` from `dart:convert` instead:
33 ///
34 /// import 'dart:convert';
35 /// import 'package:yaml/yaml.dart';
36 /// main() {
37 /// var doc = loadYaml("YAML: YAML Ain't Markup Language");
38 /// print(JSON.encode(doc));
39 /// }
40 ///
41 /// [pub]: http://pub.dartlang.org
42 /// [pkg]: http://pub.dartlang.org/packages/yaml
43 library yaml; 5 library yaml;
44 6
45 import 'src/composer.dart'; 7 import 'src/composer.dart';
46 import 'src/constructor.dart'; 8 import 'src/constructor.dart';
47 import 'src/parser.dart'; 9 import 'src/parser.dart';
48 import 'src/yaml_exception.dart'; 10 import 'src/yaml_exception.dart';
49 11
50 export 'src/yaml_exception.dart'; 12 export 'src/yaml_exception.dart';
51 export 'src/yaml_map.dart'; 13 export 'src/yaml_map.dart';
52 14
53 /// Loads a single document from a YAML string. If the string contains more than 15 /// Loads a single document from a YAML string.
54 /// one document, this throws an error. 16 ///
17 /// If the string contains more than one document, this throws a
18 /// [YamlException]. In future releases, this will become an [ArgumentError].
55 /// 19 ///
56 /// The return value is mostly normal Dart objects. However, since YAML mappings 20 /// The return value is mostly normal Dart objects. However, since YAML mappings
57 /// support some key types that the default Dart map implementation doesn't 21 /// support some key types that the default Dart map implementation doesn't
58 /// (null, NaN, booleans, lists, and maps), all maps in the returned document 22 /// (NaN, lists, and maps), all maps in the returned document are [YamlMap]s.
59 /// are [YamlMap]s. These have a few small behavioral differences from the 23 /// These have a few small behavioral differences from the default Map
60 /// default Map implementation; for details, see the [YamlMap] class. 24 /// implementation; for details, see the [YamlMap] class.
25 ///
26 /// In future versions, maps will instead be [HashMap]s with a custom equality
27 /// operation.
61 loadYaml(String yaml) { 28 loadYaml(String yaml) {
62 var stream = loadYamlStream(yaml); 29 var stream = loadYamlStream(yaml);
63 if (stream.length != 1) { 30 if (stream.length != 1) {
64 throw new YamlException("Expected 1 document, were ${stream.length}"); 31 throw new YamlException("Expected 1 document, were ${stream.length}.");
65 } 32 }
66 return stream[0]; 33 return stream[0];
67 } 34 }
68 35
69 /// Loads a stream of documents from a YAML string. 36 /// Loads a stream of documents from a YAML string.
70 /// 37 ///
71 /// The return value is mostly normal Dart objects. However, since YAML mappings 38 /// The return value is mostly normal Dart objects. However, since YAML mappings
72 /// support some key types that the default Dart map implementation doesn't 39 /// support some key types that the default Dart map implementation doesn't
73 /// (null, NaN, booleans, lists, and maps), all maps in the returned document 40 /// (NaN, lists, and maps), all maps in the returned document are [YamlMap]s.
74 /// are [YamlMap]s. These have a few small behavioral differences from the 41 /// These have a few small behavioral differences from the default Map
75 /// default Map implementation; for details, see the [YamlMap] class. 42 /// implementation; for details, see the [YamlMap] class.
43 ///
44 /// In future versions, maps will instead be [HashMap]s with a custom equality
45 /// operation.
76 List loadYamlStream(String yaml) { 46 List loadYamlStream(String yaml) {
77 return new Parser(yaml).l_yamlStream() 47 return new Parser(yaml).l_yamlStream()
78 .map((doc) => new Constructor(new Composer(doc).compose()).construct()) 48 .map((doc) => new Constructor(new Composer(doc).compose()).construct())
79 .toList(); 49 .toList();
80 } 50 }
OLDNEW
« no previous file with comments | « pkg/yaml/lib/src/yaml_map.dart ('k') | pkg/yaml/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698