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

Side by Side Diff: src/site/codelabs/darrrt/examples/6-piratebadge/piratebadge.dart

Issue 339243004: Update generated JS for codelab's pirate app. (Closed) Base URL: https://github.com/dart-lang/dartlang.org.git@master
Patch Set: Created 6 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 unified diff | Download patch
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 5
6 // Demonstrates: 6 // Demonstrates:
7 // list, maps, random, strings, string interpolation 7 // list, maps, random, strings, string interpolation
8 // cascade, fat arrow, ternary operator 8 // cascade, fat arrow, ternary operator
9 // named constructors 9 // named constructors
10 // optional parameters 10 // optional parameters
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 77
78 PirateName getBadgeNameFromStorage() { 78 PirateName getBadgeNameFromStorage() {
79 String storedName = window.localStorage[TREASURE_KEY]; 79 String storedName = window.localStorage[TREASURE_KEY];
80 if (storedName != null) { 80 if (storedName != null) {
81 return new PirateName.fromJSON(storedName); 81 return new PirateName.fromJSON(storedName);
82 } else { 82 } else {
83 return null; 83 return null;
84 } 84 }
85 } 85 }
86 86
87 /*
88 * A class declaration.
89 */
90 class PirateName { 87 class PirateName {
91 88
92 // static variables are shared by all instances.
93 // Random is a random number generator in dart:math.
94 static final Random indexGen = new Random(); 89 static final Random indexGen = new Random();
95 90
96 // List is a parameterized type. You can declare the type of the objects it co ntains.
97 static List<String> names = []; 91 static List<String> names = [];
98 static List<String> appellations = []; 92 static List<String> appellations = [];
99 93
100 // Instance variables. Private variables have names that start with underscore '_'.
101 String _firstName; 94 String _firstName;
102 String _appellation; 95 String _appellation;
103 96
104 // A constructor with two optional, named parameters.
105 PirateName({String firstName, String appellation}) { 97 PirateName({String firstName, String appellation}) {
106 98
107 // Use nextInt to get a random integer from a Random object.
108 // Use length to get the number of items in a list.
109 if (firstName == null) { 99 if (firstName == null) {
110 _firstName = names[indexGen.nextInt(names.length)]; 100 _firstName = names[indexGen.nextInt(names.length)];
111 } else { 101 } else {
112 _firstName = firstName; 102 _firstName = firstName;
113 } 103 }
114 if (appellation == null) { 104 if (appellation == null) {
115 _appellation = appellations[indexGen.nextInt(appellations.length)]; 105 _appellation = appellations[indexGen.nextInt(appellations.length)];
116 } else { 106 } else {
117 _appellation = appellation; 107 _appellation = appellation;
118 } 108 }
119 } 109 }
120 110
121 // A named constructor.
122 PirateName.fromJSON(String jsonString) { 111 PirateName.fromJSON(String jsonString) {
123 // JSON is the default implementation of a JSON encoder/decoder.
124 // Map is a collection of key-value pairs.
125 Map storedName = JSON.decode(jsonString); 112 Map storedName = JSON.decode(jsonString);
126 _firstName = storedName['f']; 113 _firstName = storedName['f'];
127 _appellation = storedName['a']; 114 _appellation = storedName['a'];
128 } 115 }
129 116
130 // Fat arrow syntax is shorthand for a one-line function that returns a value.
131 String toString() => pirateName; 117 String toString() => pirateName;
132 118
133 // A getter provides read access to the member of an object. 119 String get jsonString => JSON.encode({"f": _firstName, "a": _appellation});
134 String get jsonString => '{ "f": "$_firstName", "a": "$_appellation" } ';
135 120
136 // The ternary operator is shorthand for if-then-else.
137 // String interpolation lets you easily build strings from other objects.
138 String get pirateName => _firstName.isEmpty ? '' : '$_firstName the $_appellat ion'; 121 String get pirateName => _firstName.isEmpty ? '' : '$_firstName the $_appellat ion';
139 122
140 static Future readyThePirates() { 123 static Future readyThePirates() {
141 String path = 'piratenames.json'; 124 String path = 'piratenames.json';
142 return HttpRequest.getString(path) 125 return HttpRequest.getString(path)
143 .then(_parsePirateNamesFromJSON); 126 .then(_parsePirateNamesFromJSON);
144 } 127 }
145 128
146 static _parsePirateNamesFromJSON(String jsonString) { 129 static _parsePirateNamesFromJSON(String jsonString) {
147 Map pirateNames = JSON.decode(jsonString); 130 Map pirateNames = JSON.decode(jsonString);
148 names = pirateNames['names']; 131 names = pirateNames['names'];
149 appellations = pirateNames['appellations']; 132 appellations = pirateNames['appellations'];
150 } 133 }
151 } 134 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698