add ansiSupported (#4)

* add ansiSupported

* review comments
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 104fc67..418f0a0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+### 1.1.0
+
+* Added `ansiSupported`
+* Bumped minimum Dart SDK version to 1.23.0-dev.9.0
+
 #### 1.0.2
 
 * Minor doc updates
diff --git a/lib/src/interface/local_platform.dart b/lib/src/interface/local_platform.dart
index a0406c3..178c683 100644
--- a/lib/src/interface/local_platform.dart
+++ b/lib/src/interface/local_platform.dart
@@ -46,4 +46,7 @@
 
   @override
   String get version => io.Platform.version;
+
+  @override
+  bool get ansiSupported => io.Platform.ansiSupported;
 }
diff --git a/lib/src/interface/platform.dart b/lib/src/interface/platform.dart
index 35b111b..a603e3c 100644
--- a/lib/src/interface/platform.dart
+++ b/lib/src/interface/platform.dart
@@ -114,6 +114,12 @@
   /// whitespace and other version and build details.
   String get version;
 
+  /// When stdio is connected to a terminal, whether ANSI codes are supported.
+  ///
+  /// This value is hard-coded to true, except on Windows where only more recent
+  /// versions of Windows 10 support the codes.
+  bool get ansiSupported;
+
   /// Returns a JSON-encoded representation of this platform.
   String toJson() {
     return const JsonEncoder.withIndent('  ').convert(<String, dynamic>{
@@ -129,6 +135,7 @@
       'packageRoot': packageRoot,
       'packageConfig': packageConfig,
       'version': version,
+      'ansiSupported': ansiSupported,
     });
   }
 }
diff --git a/lib/src/testing/fake_platform.dart b/lib/src/testing/fake_platform.dart
index 6256d14..04df6fe 100644
--- a/lib/src/testing/fake_platform.dart
+++ b/lib/src/testing/fake_platform.dart
@@ -25,6 +25,7 @@
     this.packageRoot,
     this.packageConfig,
     this.version,
+    this.ansiSupported,
   });
 
   /// Creates a new [FakePlatform] with properties whose initial values mirror
@@ -41,7 +42,8 @@
         executableArguments = new List<String>.from(platform.executableArguments),
         packageRoot = platform.packageRoot,
         packageConfig = platform.packageConfig,
-        version = platform.version;
+        version = platform.version,
+        ansiSupported = platform.ansiSupported;
 
   /// Creates a new [FakePlatform] with properties extracted from the encoded
   /// JSON string.
@@ -63,6 +65,7 @@
       packageRoot : map['packageRoot'],
       packageConfig : map['packageConfig'],
       version : map['version'],
+      ansiSupported: map['ansiSupported'],
     );
   }
 
@@ -101,4 +104,7 @@
 
   @override
   String version;
+
+  @override
+  bool ansiSupported;
 }
diff --git a/pubspec.yaml b/pubspec.yaml
index a5e3575..af6d799 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: platform
-version: 1.0.2
+version: 1.1.0
 authors:
 - Todd Volkert <tvolkert@google.com>
 description: A pluggable, mockable platform abstraction for Dart.
@@ -9,4 +9,4 @@
   test: ^0.12.10
 
 environment:
-  sdk: '>=1.19.0 <2.0.0'
+  sdk: '>=1.23.0-dev.9.0 <2.0.0'