OLD | NEW |
| (Empty) |
1 // Copyright (c) 2014, 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 barback.test.transformer.conditionally_consume_primary; | |
6 | |
7 import 'dart:async'; | |
8 | |
9 import 'package:barback/barback.dart'; | |
10 | |
11 import 'rewrite.dart'; | |
12 | |
13 /// A transformer that consumes its primary input only if its contents match a | |
14 /// given pattern. | |
15 class ConditionallyConsumePrimaryTransformer extends RewriteTransformer { | |
16 final Pattern content; | |
17 | |
18 ConditionallyConsumePrimaryTransformer(String from, String to, this.content) | |
19 : super(from, to); | |
20 | |
21 Future doApply(Transform transform) { | |
22 return getPrimary(transform).then((primary) { | |
23 return primary.readAsString().then((value) { | |
24 if (value.contains(content)) transform.consumePrimary(); | |
25 return super.doApply(transform); | |
26 }); | |
27 }); | |
28 } | |
29 } | |
OLD | NEW |