<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -5,24 +5,18 @@ var Effect = {
     this.queues = [];
     this.globalQueue = new Effect.Queue();
     this.queues.push(this.globalQueue);
-    this.activeEffectCount = 0;
-
-    this.setHeartbeat(heartbeat || new Effect.Heartbeat());
-    document.observe('effect:heartbeat', this.renderQueues.bind(this));
 
-    document.observe('effect:queued', function(){
-      Effect.activeEffectCount++;
-      if (Effect.activeEffectCount == 1) Effect.heartbeat.start();
-    });
+    this.heartbeat = heartbeat || new Effect.Heartbeat();
+    this.activeEffectCount = 0;
 
-    document.observe('effect:dequeued', function(){
-      Effect.activeEffectCount--;
-      if (Effect.activeEffectCount == 0) Effect.heartbeat.stop();
-    });
+    document
+      .observe('effect:heartbeat', this.renderQueues.bind(this))
+      .observe('effect:queued',    this.beatOnDemand.bind(this, 1))
+      .observe('effect:dequeued',  this.beatOnDemand.bind(this, -1));
   },
 
-  setHeartbeat: function(heartbeat) {
-    this.heartbeat = heartbeat;
+  beatOnDemand: function(dir) {
+    this.heartbeat[(this.activeEffectCount += dir) &gt; 0 ? 'start' : 'stop']();
   },
 
   renderQueues: function() {</diff>
      <filename>effects/src/base.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>5b9dbb17f04bd3e09273e9869a550e261d12b5dd</id>
    </parent>
  </parents>
  <author>
    <name>Thomas Fuchs</name>
    <email>thomas@fesch.at</email>
  </author>
  <url>http://github.com/madrobby/scripty2/commit/13e917456e16beff8c01d86b41b7897d095b8456</url>
  <id>13e917456e16beff8c01d86b41b7897d095b8456</id>
  <committed-date>2008-05-07T16:08:38-07:00</committed-date>
  <authored-date>2008-05-07T16:08:38-07:00</authored-date>
  <message>cosmetic refactoring of base.js</message>
  <tree>60efc63bc45f5b46735275882cc51810d2073d14</tree>
  <committer>
    <name>Thomas Fuchs</name>
    <email>thomas@fesch.at</email>
  </committer>
</commit>
