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

Unified Diff: pkg/barback/lib/src/transformer_group.dart

Issue 25376003: Add support for transformer clusters to barback. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: More code reivew changes Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/barback/lib/src/phase_output.dart ('k') | pkg/barback/test/package_graph/group_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/barback/lib/src/transformer_group.dart
diff --git a/pkg/barback/lib/src/transformer_group.dart b/pkg/barback/lib/src/transformer_group.dart
new file mode 100644
index 0000000000000000000000000000000000000000..f6bf2b80de834e2a04258d38bd3f1484a82c9531
--- /dev/null
+++ b/pkg/barback/lib/src/transformer_group.dart
@@ -0,0 +1,30 @@
+// Copyright (c) 2013, 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.
+
+library barback.transformer_group;
+
+import 'dart:async';
+
+/// A [TransformerGroup] encapsulates a phased collection of transformers.
+///
+/// A transformer group is defined like a collection of phases, such as you
+/// might pass to [Barback.updateTransformers]. Input assets are transformed by
+/// the first phase, whose results are passed to the second phase, and so on.
+///
+/// However, from the perspective of someone using a [TransformerGroup], it
+/// works just like a [Transformer]. It can be included in phases, and will run
+/// in parallel to other transformers or groups in those phases. Other
+/// transformers and groups will be unable to see any intermediate assets that
+/// are generated by one phase of the group and consumed by another. Phases
+/// after the one containing the group will be able to see its outputs, though.
+class TransformerGroup {
+ /// The phases that comprise this group.
+ ///
+ /// Each element of the inner iterable must be either a [Transformer] or a
+ /// [TransformerGroup].
+ final Iterable<Iterable> phases;
+
+ TransformerGroup(Iterable<Iterable> phases)
+ : this.phases = phases.map((phase) => phase.toList()).toList();
+}
« no previous file with comments | « pkg/barback/lib/src/phase_output.dart ('k') | pkg/barback/test/package_graph/group_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698