Skip to content

Commit

Permalink
Merge pull request #76 from LoveCommunity/refactor/configurable-combine
Browse files Browse the repository at this point in the history
make `ConfigurableCombine` abstract class
  • Loading branch information
beeth0ven committed Jul 14, 2022
2 parents f2b3346 + 814f7b0 commit 758cca3
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
2 changes: 1 addition & 1 deletion lib/src/scopes/configurables/configurable.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ abstract class Configurable {
const factory Configurable(ScopeConfigure configure) = ConfigurableFunction;
const factory Configurable.combine({
required List<Configurable> children,
}) = ConfigurableCombine;
}) = ConfigurableCombine.impl;
}

27 changes: 22 additions & 5 deletions lib/src/scopes/configurables/configurable_combine.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,34 @@ import '../scopes/configurable_scope.dart';
import '../shared/build_scope.dart';
import 'configurable.dart';

@internal
class ConfigurableCombine implements Configurable {
abstract class ConfigurableCombine implements Configurable {

const ConfigurableCombine({
const ConfigurableCombine();

@internal
const factory ConfigurableCombine.impl({
required List<Configurable> children,
}) = _ConfigurableCombineImpl;

List<Configurable> combine();

@override
FutureOr<void> configure(ConfigurableScope scope) {
final configure = combine();
return configureScope(configure, scope);
}
}

class _ConfigurableCombineImpl extends ConfigurableCombine {

const _ConfigurableCombineImpl ({
required List<Configurable> children,
}): _children = children;

final List<Configurable> _children;

@override
FutureOr<void> configure(ConfigurableScope scope) {
return configureScope(_children, scope);
List<Configurable> combine() {
return _children;
}
}
1 change: 1 addition & 0 deletions lib/src/scopes/scopes.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@

export 'configurables/async_final.dart';
export 'configurables/configurable.dart';
export 'configurables/configurable_combine.dart';
export 'configurables/final.dart';
export 'errors/scope_value_not_exposed_error.dart';
export 'scope_methods/disposable_sink.dart';
Expand Down

0 comments on commit 758cca3

Please sign in to comment.