Add extension method for easy creation (#11)
diff --git a/.travis.yml b/.travis.yml
index 27cdad6..8f0ecf6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,7 @@
language: dart
dart:
- dev
-- 2.5.0
+- stable
# Only building master means that we don't run two builds for each pull request.
dart_task:
- test: --platform vm,chrome
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 198373a..2346cf1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,16 @@
# Changelog
+## 0.4.0
+
+* Added an extension method on `String` to allow easy access to the `Characters`
+ of the string:
+
+ ```dart
+ print('The first character is: ' + myString.characters.first)
+ ```
+
+* Updated Dart SDK dependency to Dart 2.6.0
+
## 0.3.1
* Added small example in `example/main.dart`
diff --git a/example/main.dart b/example/main.dart
index 65cda68..b01e334 100644
--- a/example/main.dart
+++ b/example/main.dart
@@ -8,11 +8,15 @@
// Length.
print('String.length: ${hi.length}');
- print('Characters.length: ${Characters(hi).length}\n');
+ print('Characters.length: ${hi.characters.length}\n');
+
+ // Last character.
+ print('The string ends with: ${hi.substring(hi.length - 1)}');
+ print('The last character: ${hi.characters.last}\n');
// Skip last character.
- print('String.substring: "${hi.substring(0, hi.length - 1)}"');
- print('Characters.skipLast: "${Characters(hi).skipLast(1)}"\n');
+ print('Substring -1: "${hi.substring(0, hi.length - 1)}"');
+ print('Skipping last character: "${hi.characters.skipLast(1)}"\n');
// Replace characters.
Characters newHi =
diff --git a/lib/characters.dart b/lib/characters.dart
index 73dce47..d56d787 100644
--- a/lib/characters.dart
+++ b/lib/characters.dart
@@ -6,3 +6,4 @@
library characters;
export "src/characters.dart";
+export "src/extensions.dart";
diff --git a/lib/src/extensions.dart b/lib/src/extensions.dart
new file mode 100644
index 0000000..b661daf
--- /dev/null
+++ b/lib/src/extensions.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2019, 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.
+
+import 'characters.dart';
+
+extension StringCharacters on String {
+ /// The [Characters] of this string.
+ Characters get characters => Characters(this);
+}
diff --git a/pubspec.yaml b/pubspec.yaml
index be2d3a7..f12c032 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,11 +1,10 @@
name: characters
-version: 0.3.1
+version: 0.4.0
description: String replacement with operations that are Unicode/grapheme cluster aware.
-author: Dart Team <misc@dartlang.org>
homepage: https://www.github.com/dart-lang/characters
environment:
- sdk: ">=2.5.0 <3.0.0"
+ sdk: ">=2.6.0 <3.0.0"
dev_dependencies:
test: "^1.6.0"
pedantic: