Skip to content

Commit

Permalink
Dev: 1.3.2 (#10)
Browse files Browse the repository at this point in the history
* updated stream extensions

* added extension

* added extension
  • Loading branch information
hoc081098 authored Oct 10, 2020
1 parent de47de8 commit d351308
Show file tree
Hide file tree
Showing 12 changed files with 317 additions and 62 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## 1.3.2 - Oct 10, 2020

* Add extension: `RxSharedPreferences get rx` for `SharedPreferences`.
This allows writing concise code like this: `sharedPreferences.rx.getStringStream('key')`.

* Allows changing logger for default singleton instance or extension: `RxSharedPreferencesConfig.logger = ...`;

* Internal implementation refactor.

## 1.3.1 - May 29, 2020

* Update docs.
Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ In your flutter project, add the dependency to your `pubspec.yaml`
```yaml
dependencies:
...
rx_shared_preferences: ^1.3.0
rx_shared_preferences: ^1.3.2
```
## Usage
Expand All @@ -57,6 +57,9 @@ Wrap your `SharedPreferences` in a `RxSharedPreferences`.
final rxPrefs = RxSharedPreferences(await SharedPreferences.getInstance());
final rxPrefs = RxSharedPreferences(SharedPreferences.getInstance()); // await is optional
final rxPrefs = RxSharedPreferences.getInstance(); // default singleton instance
// via extension.
final rxPrefs = (await SharedPreferences.getInstance()).rx;
```

### 2. Can add a logger
Expand Down
144 changes: 121 additions & 23 deletions example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,42 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.1"
version: "2.5.0-nullsafety"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.1.0-nullsafety"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0-nullsafety.2"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.3"
version: "1.2.0-nullsafety"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
version: "1.1.0-nullsafety"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.14.12"
version: "1.15.0-nullsafety.2"
cupertino_icons:
dependency: "direct main"
description:
Expand All @@ -49,7 +56,21 @@ packages:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.1.0-nullsafety"
ffi:
dependency: transitive
description:
name: ffi
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.3"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
source: hosted
version: "5.2.1"
flutter:
dependency: "direct main"
description: flutter
Expand All @@ -65,41 +86,90 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
intl:
dependency: transitive
description:
name: intl
url: "https://pub.dartlang.org"
source: hosted
version: "0.16.1"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.6"
version: "0.12.10-nullsafety"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.8"
version: "1.3.0-nullsafety.2"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.0"
version: "1.8.0-nullsafety"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.1+2"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.3"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.4+1"
pedantic:
dependency: "direct dev"
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.0"
platform:
dependency: transitive
description:
name: platform
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.1"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.3"
process:
dependency: transitive
description:
name: process
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.13"
rx_shared_preferences:
dependency: "direct main"
description:
path: ".."
relative: true
source: path
version: "1.3.0"
version: "1.3.2"
rxdart:
dependency: transitive
description:
Expand All @@ -113,28 +183,42 @@ packages:
name: shared_preferences
url: "https://pub.dartlang.org"
source: hosted
version: "0.5.7+3"
version: "0.5.12"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.2+2"
shared_preferences_macos:
dependency: transitive
description:
name: shared_preferences_macos
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.1+3"
version: "0.0.1+10"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
version: "1.0.4"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2+2"
version: "0.1.2+7"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.1+1"
sky_engine:
dependency: transitive
description: flutter
Expand All @@ -146,56 +230,70 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.0"
version: "1.8.0-nullsafety"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.3"
version: "1.10.0-nullsafety"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.1.0-nullsafety"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
version: "1.1.0-nullsafety"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.2.0-nullsafety"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.15"
version: "0.2.19-nullsafety"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
version: "1.3.0-nullsafety.2"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.8"
version: "2.1.0-nullsafety.2"
win32:
dependency: transitive
description:
name: win32
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.3"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2"
sdks:
dart: ">=2.6.0 <3.0.0"
dart: ">=2.10.0-0.0.dev <2.10.0"
flutter: ">=1.12.13+hotfix.5 <2.0.0"
1 change: 1 addition & 0 deletions lib/rx_shared_preferences.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
///
library rx_shared_preferences;

export 'src/extensions/preferences_extension.dart';
export 'src/interface/rx_shared_preferences.dart';
export 'src/interface/shared_preferences_like.dart';
export 'src/logger/default_logger.dart';
Expand Down
7 changes: 7 additions & 0 deletions lib/src/config/global_config.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import '../../rx_shared_preferences.dart';

/// Global config for default singleton or extension.
class RxSharedPreferencesConfig {
/// Config for logger.
static Logger logger = const DefaultLogger();
}
24 changes: 24 additions & 0 deletions lib/src/extensions/preferences_extension.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import 'package:rx_shared_preferences/rx_shared_preferences.dart';
import 'package:rx_shared_preferences/src/config/global_config.dart';
import 'package:shared_preferences/shared_preferences.dart';

final _instances = <SharedPreferences, RxSharedPreferences>{};

/// Provide [RxSharedPreferences] via [rx] getter.
extension SharedPreferencesRxExtension on SharedPreferences {
/// Returns singleton instance associated with this [SharedPreferences].
RxSharedPreferences get rx {
final instances = _instances;

final cached = instances[this];
if (cached != null) {
return cached;
}

return instances[this] = RxSharedPreferences(
this,
RxSharedPreferencesConfig.logger,
() => instances.remove(this),
);
}
}
Loading

0 comments on commit d351308

Please sign in to comment.