From 4db52140ddcd745bf350e6d066fbee3baf95f605 Mon Sep 17 00:00:00 2001 From: Todd Volkert Date: Sun, 2 Oct 2016 10:10:22 -0700 Subject: [PATCH 1/4] Update to use package:observable & latest package:observe --- lib/polymer.dart | 2 ++ lib/src/instance.dart | 6 +++--- pubspec.yaml | 7 ++++--- test/bind_mdv_test.dart | 4 ++-- test/prop_attr_reflection_test.dart | 2 +- test/unbind_test.dart | 4 ++-- 6 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/polymer.dart b/lib/polymer.dart index 95f1af7..754ebd2 100644 --- a/lib/polymer.dart +++ b/lib/polymer.dart @@ -46,6 +46,7 @@ import 'dart:js' hide context; import 'package:initialize/initialize.dart' hide run; import 'package:logging/logging.dart'; +import 'package:observable/observable.dart'; import 'package:observe/observe.dart'; import 'package:observe/src/dirty_check.dart' show dirtyCheckZone; import 'package:polymer_expressions/polymer_expressions.dart' @@ -59,6 +60,7 @@ import 'auto_binding.dart'; import 'deserialize.dart' as deserialize; export 'package:initialize/initialize.dart' show initMethod; +export 'package:observable/observable.dart'; export 'package:observe/observe.dart'; export 'package:observe/html.dart'; export 'package:web_components/web_components.dart' show HtmlImport; diff --git a/lib/src/instance.dart b/lib/src/instance.dart index ca46d8d..55b024d 100644 --- a/lib/src/instance.dart +++ b/lib/src/instance.dart @@ -131,7 +131,7 @@ class ComputedProperty { /// Base class for PolymerElements deriving from HtmlElement. /// /// See [Polymer]. -class PolymerElement extends HtmlElement with Polymer, Observable { +class PolymerElement extends HtmlElement with Polymer, AutoObservable { PolymerElement.created() : super.created() { polymerCreated(); } @@ -1165,7 +1165,7 @@ abstract class Polymer implements Element, Observable, NodeBindExtension { // when polyfilling Object.observe, ensure changes // propagate before executing the async method - scheduleMicrotask(Observable.dirtyCheck); + scheduleMicrotask(AutoObservable.dirtyCheck); PolymerJs.flush(); // for polymer-js interop return new Timer(timeout, method); } @@ -1181,7 +1181,7 @@ abstract class Polymer implements Element, Observable, NodeBindExtension { int async(RequestAnimationFrameCallback method) { // when polyfilling Object.observe, ensure changes // propagate before executing the async method - scheduleMicrotask(Observable.dirtyCheck); + scheduleMicrotask(AutoObservable.dirtyCheck); PolymerJs.flush(); // for polymer-js interop return window.requestAnimationFrame(method); } diff --git a/pubspec.yaml b/pubspec.yaml index efea1b4..8ba17d0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: polymer -version: 0.16.4+2 +version: 0.16.4+3 author: Polymer.dart Authors description: > Polymer.dart is a new type of library for the web, built on top of Web @@ -16,7 +16,7 @@ dependencies: initialize: '>=0.5.1+3 <0.7.0' logging: '>=0.9.2 <0.12.0' path: '>=0.9.0 <2.0.0' - polymer_expressions: '>=0.12.0 <0.14.0' + polymer_expressions: '>=0.13.0+3 <0.14.0' polymer_interop: '>=0.1.0+2 <0.2.0' smoke: '>=0.2.0 <0.4.0' source_maps: '>=0.9.4 <0.11.0' @@ -28,7 +28,8 @@ dependencies: # Because polymer exports observe, it needs to keep its version constraint # tight to ensure that a constraint on polymer properly constraints all # features it provides. - observe: '>=0.13.3 <0.13.4' + observe: '^0.14.0' + observable: '^0.14.0' dev_dependencies: test: '^0.12.0' transformer_test: '^0.2.0' diff --git a/test/bind_mdv_test.dart b/test/bind_mdv_test.dart index 9a42eb6..d029226 100644 --- a/test/bind_mdv_test.dart +++ b/test/bind_mdv_test.dart @@ -71,7 +71,7 @@ bindModelTests() { }, skip: 'https://github.com/dart-lang/polymer-dart/issues/78'); } -class MyDivElement extends HtmlElement with Observable { +class MyDivElement extends HtmlElement with AutoObservable { factory MyDivElement() => new Element.tag('my-div'); MyDivElement.created() : super.created(); @observable var bar; @@ -88,6 +88,6 @@ Future onAttributeChange(Element node) { observer.disconnect(); completer.complete(); })..observe(node, attributes: true); - scheduleMicrotask(Observable.dirtyCheck); + scheduleMicrotask(AutoObservable.dirtyCheck); return completer.future; } diff --git a/test/prop_attr_reflection_test.dart b/test/prop_attr_reflection_test.dart index b428bc0..7e8334f 100644 --- a/test/prop_attr_reflection_test.dart +++ b/test/prop_attr_reflection_test.dart @@ -58,7 +58,7 @@ Future onAttributeChange(Element node) { observer.disconnect(); completer.complete(); })..observe(node, attributes: true); - scheduleMicrotask(Observable.dirtyCheck); + scheduleMicrotask(AutoObservable.dirtyCheck); return completer.future; } diff --git a/test/unbind_test.dart b/test/unbind_test.dart index 640baa4..e0391ec 100644 --- a/test/unbind_test.dart +++ b/test/unbind_test.dart @@ -71,7 +71,7 @@ _observerCount(node) => unbindTests() { var xTest = document.querySelector('x-test'); xTest.foo = 'bar'; - scheduleMicrotask(Observable.dirtyCheck); + scheduleMicrotask(AutoObservable.dirtyCheck); return delay(null).then((_) { expect(_unbound(xTest), null, reason: 'element is bound when inserted'); @@ -88,7 +88,7 @@ unbindTests() { expect(_unbound(node), null, reason: 'element is bound when not inserted'); node.foo = 'bar'; expect(_observerCount(node), greaterThan(0)); - scheduleMicrotask(Observable.dirtyCheck); + scheduleMicrotask(AutoObservable.dirtyCheck); return node; }).then(delay).then((node) { expect(node.fooWasChanged, true, reason: 'node is actually bound'); From da9ffc4eaaec17d8e390cf88435c19f4fa5c814d Mon Sep 17 00:00:00 2001 From: Todd Volkert Date: Mon, 3 Oct 2016 11:55:50 -0700 Subject: [PATCH 2/4] Added CHANGELOG entry --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74e3564..70d1df7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +#### 0.16.4+3 + * Update to use `package:observable` + #### 0.16.4+2 * Update to transformer_test `0.2.x`. From 975821dcee8d01458d875757a563eac7b381ce5a Mon Sep 17 00:00:00 2001 From: Todd Volkert Date: Mon, 3 Oct 2016 12:08:54 -0700 Subject: [PATCH 3/4] Fixed some tests --- test/build/all_phases_test.dart | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/test/build/all_phases_test.dart b/test/build/all_phases_test.dart index dd83815..9ff71de 100644 --- a/test/build/all_phases_test.dart +++ b/test/build/all_phases_test.dart @@ -66,7 +66,9 @@ void main() { import 'package:polymer/polymer.dart' as i2; main() { - initializers.addAll([new InitEntry(const i2.CustomTag('x-A'), i1.XA),]); + initializers.addAll([ + new InitEntry(const i2.CustomTag('x-A'), i1.XA), + ]); return i0.main(); } @@ -120,7 +122,9 @@ void main() { import 'package:polymer/polymer.dart' as i2; main() { - initializers.addAll([new InitEntry(const i2.CustomTag('x-A'), i1.XA),]); + initializers.addAll([ + new InitEntry(const i2.CustomTag('x-A'), i1.XA), + ]); return i0.main(); } @@ -174,7 +178,9 @@ void main() { import 'package:polymer/polymer.dart' as i2; main() { - initializers.addAll([new InitEntry(const i2.CustomTag('x-B'), i1.XB),]); + initializers.addAll([ + new InitEntry(const i2.CustomTag('x-B'), i1.XB), + ]); return i0.main(); } @@ -307,7 +313,7 @@ library ${className}_$fieldName; import 'package:observe/observe.dart'; import 'package:polymer/polymer.dart'; -class $className extends ChangeNotifier { +class $className extends Observable { $fieldReplacement $className($fieldName) : __\$$fieldName = $fieldName; } From 6ae7b2de7bd92f859927a3848711a9273f45c9c6 Mon Sep 17 00:00:00 2001 From: Todd Volkert Date: Mon, 3 Oct 2016 12:09:56 -0700 Subject: [PATCH 4/4] Update polymer expressions version to match https://github.com/dart-lang/polymer-expressions/pull/10 --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 8ba17d0..8552d75 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: initialize: '>=0.5.1+3 <0.7.0' logging: '>=0.9.2 <0.12.0' path: '>=0.9.0 <2.0.0' - polymer_expressions: '>=0.13.0+3 <0.14.0' + polymer_expressions: '>=0.13.1+1 <0.14.0' polymer_interop: '>=0.1.0+2 <0.2.0' smoke: '>=0.2.0 <0.4.0' source_maps: '>=0.9.4 <0.11.0'