Skip to content

Commit 7959b6c

Browse files
authored
rename Logger to RxStorageLogger and others... (#17)
1 parent b6c0a8d commit 7959b6c

File tree

10 files changed

+59
-52
lines changed

10 files changed

+59
-52
lines changed

.github/workflows/dart.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
branches: [ master ]
99
paths-ignore: [ '**.md' ]
1010
schedule:
11-
# Runs at 02:00 UTC on the 1, 4, 7, 10, 13, 16, 19, 22, 25, 28 and 31st of every month.
11+
# Runs at 02:00 UTC on the 1, 4, 7, 10, 13, 16, 19, 22, 25, 28 and 31st of every month.
1212
- cron: "0 2 */3 * *"
1313

1414
jobs:
@@ -18,7 +18,7 @@ jobs:
1818

1919
strategy:
2020
matrix:
21-
sdk: [ stable, beta, dev, 2.12.0 ]
21+
sdk: [ 2.12.0, 2.15.0, stable, beta, dev ]
2222

2323
steps:
2424
- uses: actions/checkout@v2

lib/src/impl/real_storage.dart

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class RealRxStorage<Key extends Object, Options,
3333
DisposeBag(const <Object>[], '( RealRxStorage ~ ${shortHash(this)} )');
3434

3535
/// Logger controller. Nullable
36-
StreamController<LoggerEvent<Key, Options>>? _loggerEventController;
36+
StreamController<RxStorageLoggerEvent<Key, Options>>? _loggerEventController;
3737

3838
/// Nullable.
3939
S? _storage;
@@ -46,7 +46,7 @@ class RealRxStorage<Key extends Object, Options,
4646
/// Construct a [RealRxStorage].
4747
RealRxStorage(
4848
FutureOr<S> storageOrFuture, [
49-
final Logger<Key, Options>? logger,
49+
final RxStorageLogger<Key, Options>? logger,
5050
this._onDispose,
5151
]) {
5252
if (storageOrFuture is Future<S>) {
@@ -67,13 +67,13 @@ class RealRxStorage<Key extends Object, Options,
6767
// Internal
6868
//
6969

70-
void _setupLogger(Logger logger) {
70+
void _setupLogger(RxStorageLogger logger) {
7171
_loggerEventController = StreamController(sync: true)
7272
..disposedBy(_bag)
7373
..stream.listen(logger.log).disposedBy(_bag);
7474

7575
_keyValuesSubject
76-
.map<LoggerEvent<Key, Options>>(
76+
.map<RxStorageLoggerEvent<Key, Options>>(
7777
(map) => KeysChangedEvent(map.toListOfKeyAndValues()))
7878
.listen(_loggerEventController!.add)
7979
.disposedBy(_bag);
@@ -84,7 +84,7 @@ class RealRxStorage<Key extends Object, Options,
8484
bool get _isLogEnabled => _loggerEventController != null;
8585

8686
/// Crash if [_loggerEventController] is null.
87-
void _publishLog(LoggerEvent<Key, Options> event) {
87+
void _publishLog(RxStorageLoggerEvent<Key, Options> event) {
8888
assert(_debugAssertNotDisposed());
8989

9090
_loggerEventController!.add(event);
@@ -195,7 +195,8 @@ class RealRxStorage<Key extends Object, Options,
195195
/// Log event if logging is enabled.
196196
@protected
197197
@nonVirtual
198-
void logIfEnabled(LoggerEvent<Key, Options> Function() eventProducer) {
198+
void logIfEnabled(
199+
RxStorageLoggerEvent<Key, Options> Function() eventProducer) {
199200
assert(_debugAssertNotDisposed());
200201

201202
if (_isLogEnabled) {

lib/src/interface/rx_storage.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ abstract class RxStorage<Key extends Object, Options>
1515
/// Constructs a [RxStorage] by wrapping a [Storage].
1616
factory RxStorage(
1717
FutureOr<Storage<Key, Options>> storageOrFuture, [
18-
Logger<Key, Options>? logger,
18+
RxStorageLogger<Key, Options>? logger,
1919
void Function()? onDispose,
2020
]) =>
2121
RealRxStorage<Key, Options, Storage<Key, Options>>(

lib/src/logger/default_logger.dart

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import 'logger.dart';
99
// ignore_for_file: public_member_api_docs
1010

1111
/// Default Logger's implementation, simply print to the console.
12-
class DefaultLogger<Key extends Object, Options>
13-
implements Logger<Key, Options> {
12+
class RxStorageDefaultLogger<Key extends Object, Options>
13+
implements RxStorageLogger<Key, Options> {
1414
//
1515
// some unicode characters
1616
// and constants.
@@ -31,8 +31,9 @@ class DefaultLogger<Key extends Object, Options>
3131
/// If [trimValueOutput] is true, value text will be trimmed to max [maxValueTextLength] characters.
3232
final bool trimValueOutput;
3333

34-
/// Construct a [DefaultLogger].
35-
const DefaultLogger({this.tag = defaultTag, this.trimValueOutput = false});
34+
/// Construct a [RxStorageDefaultLogger].
35+
const RxStorageDefaultLogger(
36+
{this.tag = defaultTag, this.trimValueOutput = false});
3637

3738
@pragma('vm:prefer-inline')
3839
@pragma('dart2js:tryInline')
@@ -62,7 +63,11 @@ class DefaultLogger<Key extends Object, Options>
6263

6364
@nonVirtual
6465
@override
65-
void log(LoggerEvent<Key, Options> event) {
66+
void log(RxStorageLoggerEvent<Key, Options> event) {
67+
if (handleLogEvent(event)) {
68+
return;
69+
}
70+
6671
//
6772
// BEGIN: STREAM
6873
//
@@ -196,13 +201,13 @@ class DefaultLogger<Key extends Object, Options>
196201
//
197202
// END: WRITE
198203
//
199-
200-
logOther(event);
201204
}
202205

203-
/// Logs other events.
204-
void logOther(LoggerEvent<Key, Options> event) =>
205-
throw Exception('Unhandled event: $event');
206+
/// This method can be overridden to handle custom [RxStorageLoggerEvent] implementations or handle
207+
/// the standard events in a different way.
208+
///
209+
/// Returns `true` if event was handled, `false` otherwise.
210+
bool handleLogEvent(RxStorageLoggerEvent<Key, Options> event) => false;
206211
}
207212

208213
extension on String {

lib/src/logger/empty_logger.dart

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ import 'event.dart';
22
import 'logger.dart';
33

44
/// Log nothing :)
5-
class EmptyLogger<Key extends Object, Options> implements Logger<Key, Options> {
6-
/// Constructs a [EmptyLogger].
7-
const EmptyLogger();
5+
class RxStorageEmptyLogger<Key extends Object, Options>
6+
implements RxStorageLogger<Key, Options> {
7+
/// Constructs a [RxStorageEmptyLogger].
8+
const RxStorageEmptyLogger();
89

910
@override
10-
void log(LoggerEvent<Key, Options> event) {}
11+
void log(RxStorageLoggerEvent<Key, Options> event) {}
1112
}

lib/src/logger/event.dart

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ import '../model/key_and_value.dart';
55

66
/// Event when reading, writing storage.
77
@immutable
8-
abstract class LoggerEvent<Key extends Object, Options> {}
8+
abstract class RxStorageLoggerEvent<Key extends Object, Options> {}
99

1010
//
1111
// BEGIN: STREAM
1212
//
1313

1414
/// Key changed when mutating storage.
1515
class KeysChangedEvent<Key extends Object, Options>
16-
implements LoggerEvent<Key, Options> {
16+
implements RxStorageLoggerEvent<Key, Options> {
1717
/// A list containing all changed values associated with keys.
1818
final List<KeyAndValue<Key, Object?>> keyAndValues;
1919

@@ -23,7 +23,7 @@ class KeysChangedEvent<Key extends Object, Options>
2323

2424
/// Stream emits new data event.
2525
class OnDataStreamEvent<Key extends Object, Options>
26-
implements LoggerEvent<Key, Options> {
26+
implements RxStorageLoggerEvent<Key, Options> {
2727
/// Changed value with key.
2828
final KeyAndValue<Key, Object?> keyAndValue;
2929

@@ -33,7 +33,7 @@ class OnDataStreamEvent<Key extends Object, Options>
3333

3434
/// Stream emits error event.
3535
class OnErrorStreamEvent<Key extends Object, Options>
36-
implements LoggerEvent<Key, Options> {
36+
implements RxStorageLoggerEvent<Key, Options> {
3737
/// Error from upstream (eg. cast error, ...)
3838
final RxStorageError error;
3939

@@ -51,7 +51,7 @@ class OnErrorStreamEvent<Key extends Object, Options>
5151

5252
/// Read value successfully.
5353
class ReadValueSuccessEvent<Key extends Object, Options>
54-
implements LoggerEvent<Key, Options> {
54+
implements RxStorageLoggerEvent<Key, Options> {
5555
/// Read value with key.
5656
final KeyAndValue<Key, Object?> keyAndValue;
5757

@@ -64,7 +64,7 @@ class ReadValueSuccessEvent<Key extends Object, Options>
6464

6565
/// Read value failed.
6666
class ReadValueFailureEvent<Key extends Object, Options>
67-
implements LoggerEvent<Key, Options> {
67+
implements RxStorageLoggerEvent<Key, Options> {
6868
/// The key.
6969
final Key key;
7070

@@ -83,7 +83,7 @@ class ReadValueFailureEvent<Key extends Object, Options>
8383

8484
/// Read all values successfully.
8585
class ReadAllSuccessEvent<Key extends Object, Options>
86-
implements LoggerEvent<Key, Options> {
86+
implements RxStorageLoggerEvent<Key, Options> {
8787
/// All values read from storage.
8888
final List<KeyAndValue<Key, Object?>> all;
8989

@@ -96,7 +96,7 @@ class ReadAllSuccessEvent<Key extends Object, Options>
9696

9797
/// Read all values failed.
9898
class ReadAllFailureEvent<Key extends Object, Options>
99-
implements LoggerEvent<Key, Options> {
99+
implements RxStorageLoggerEvent<Key, Options> {
100100
/// The error occurred when reading.
101101
final RxStorageError error;
102102

@@ -117,7 +117,7 @@ class ReadAllFailureEvent<Key extends Object, Options>
117117

118118
/// Clear storage successfully.
119119
class ClearSuccessEvent<Key extends Object, Options>
120-
implements LoggerEvent<Key, Options> {
120+
implements RxStorageLoggerEvent<Key, Options> {
121121
/// The options.
122122
final Options? options;
123123

@@ -127,7 +127,7 @@ class ClearSuccessEvent<Key extends Object, Options>
127127

128128
/// Clear storage failed.
129129
class ClearFailureEvent<Key extends Object, Options>
130-
implements LoggerEvent<Key, Options> {
130+
implements RxStorageLoggerEvent<Key, Options> {
131131
/// The error occurred while clearing.
132132
final RxStorageError error;
133133

@@ -140,7 +140,7 @@ class ClearFailureEvent<Key extends Object, Options>
140140

141141
/// Remove successfully.
142142
class RemoveSuccessEvent<Key extends Object, Options>
143-
implements LoggerEvent<Key, Options> {
143+
implements RxStorageLoggerEvent<Key, Options> {
144144
/// The key.
145145
final Key key;
146146

@@ -153,7 +153,7 @@ class RemoveSuccessEvent<Key extends Object, Options>
153153

154154
/// Remove failed.
155155
class RemoveFailureEvent<Key extends Object, Options>
156-
implements LoggerEvent<Key, Options> {
156+
implements RxStorageLoggerEvent<Key, Options> {
157157
/// The key.
158158
final Key key;
159159

@@ -169,7 +169,7 @@ class RemoveFailureEvent<Key extends Object, Options>
169169

170170
/// Write successfully.
171171
class WriteSuccessEvent<Key extends Object, Options>
172-
implements LoggerEvent<Key, Options> {
172+
implements RxStorageLoggerEvent<Key, Options> {
173173
/// The key and value.
174174
final KeyAndValue<Key, Object?> keyAndValue;
175175

@@ -182,7 +182,7 @@ class WriteSuccessEvent<Key extends Object, Options>
182182

183183
/// Write failed.
184184
class WriteFailureEvent<Key extends Object, Options>
185-
implements LoggerEvent<Key, Options> {
185+
implements RxStorageLoggerEvent<Key, Options> {
186186
/// The key and value.
187187
final KeyAndValue<Key, Object?> keyAndValue;
188188

lib/src/logger/logger.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'event.dart';
22

33
/// Log messages about operations (such as read, write, value change) and stream events.
4-
abstract class Logger<Key extends Object, Options> {
4+
abstract class RxStorageLogger<Key extends Object, Options> {
55
/// Logs event.
6-
void log(LoggerEvent<Key, Options> event);
6+
void log(RxStorageLoggerEvent<Key, Options> event);
77
}

test/fake_storage.dart

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,35 @@ abstract class StringKeyStorage extends Storage<String, void> {
1111
abstract class StringKeyRxStorage extends StringKeyStorage
1212
implements RxStorage<String, void> {}
1313

14-
abstract class FakeLogger extends Logger<String, void> {}
14+
abstract class FakeLogger extends RxStorageLogger<String, void> {}
1515

16-
class FakeDefaultLogger extends DefaultLogger<String, void>
16+
class FakeDefaultLogger extends RxStorageDefaultLogger<String, void>
1717
implements FakeLogger {
1818
const FakeDefaultLogger();
1919

2020
@override
21-
void logOther(LoggerEvent<String, void> event) {
21+
bool handleLogEvent(RxStorageLoggerEvent<String, void> event) {
2222
if (event is ReloadSuccessEvent) {
2323
print(
24-
'$tag ${DefaultLogger.rightArrow} ReloadSuccessEvent ${DefaultLogger.rightArrow} ${event.map}');
25-
return;
24+
'$tag ${RxStorageDefaultLogger.rightArrow} ReloadSuccessEvent ${RxStorageDefaultLogger.rightArrow} ${event.map}');
25+
return true;
2626
}
2727
if (event is ReloadFailureEvent) {
2828
print(
29-
'$tag ${DefaultLogger.rightArrow} ReloadFailureEvent ${DefaultLogger.rightArrow} ${event.error}');
30-
return;
29+
'$tag ${RxStorageDefaultLogger.rightArrow} ReloadFailureEvent ${RxStorageDefaultLogger.rightArrow} ${event.error}');
30+
return true;
3131
}
32-
super.logOther(event);
32+
return false;
3333
}
3434
}
3535

36-
class ReloadSuccessEvent implements LoggerEvent<String, void> {
36+
class ReloadSuccessEvent implements RxStorageLoggerEvent<String, void> {
3737
final Map<String, Object?> map;
3838

3939
ReloadSuccessEvent(this.map);
4040
}
4141

42-
class ReloadFailureEvent implements LoggerEvent<String, void> {
42+
class ReloadFailureEvent implements RxStorageLoggerEvent<String, void> {
4343
final RxStorageError error;
4444

4545
ReloadFailureEvent(this.error);

test/logger/default_logger_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import 'package:test/test.dart';
44

55
void main() {
66
group('DefaultLogger<String, void>', () {
7-
final logger = DefaultLogger<String, void>(tag: 'TAG');
7+
final logger = RxStorageDefaultLogger<String, void>(tag: 'TAG');
88

99
test('KeysChangedEvent', () {
1010
const keyAndValues = [
@@ -163,7 +163,7 @@ void main() {
163163
});
164164

165165
group('DefaultLogger<String, int>', () {
166-
final logger = DefaultLogger<String, int>(tag: 'TAG');
166+
final logger = RxStorageDefaultLogger<String, int>(tag: 'TAG');
167167

168168
test('KeysChangedEvent', () {
169169
const keyAndValues = [

test/logger/logger_adapter_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import 'package:test/test.dart';
44
void main() {
55
group('EmptyLogger', () {
66
test('Works', () {
7-
final logger = EmptyLogger<String, void>();
7+
final logger = RxStorageEmptyLogger<String, void>();
88
const keyAndValue = KeyAndValue('key', 'value', String);
99

1010
logger.log(OnDataStreamEvent(keyAndValue));

0 commit comments

Comments
 (0)