<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -16,13 +16,24 @@ OptionParser.new do |opts|
   end  
 end.parse!
 
+# A simple observer class which will receive updates from the meter
+class SimpleObserver
+  def update(reading)
+    # Add all channels to get real figure
+    watts = 0 
+    reading.channels.each { |c| watts += c[:watts] }
+    # Print out measurement
+    puts &quot;New reading received: #{watts} W&quot;
+  end
+end
+
 # Create meter
 meter = CurrentCost::Meter.new(options[:port])
-
-while true
-  reading = meter.latest_reading
-  if reading
-    puts &quot;#{reading.channels[0][:watts]}W&quot;
-  end
-  sleep(6)
-end
\ No newline at end of file
+# Create observer
+observer = SimpleObserver.new
+# Register observer with meter
+meter.add_observer(observer)
+# Wait a while, let some readings come in
+sleep(30)
+# Close the meter object to stop it receiving data
+meter.close
\ No newline at end of file</diff>
      <filename>examples/simple.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>73c5f8535170f478f8a1de44c312e67ec6f3d532</id>
    </parent>
  </parents>
  <author>
    <name>James Smith</name>
    <email>james@floppy.org.uk</email>
  </author>
  <url>http://github.com/Floppy/currentcost-ruby/commit/1fca78304026a091d228d26c860f8f195f7b829f</url>
  <id>1fca78304026a091d228d26c860f8f195f7b829f</id>
  <committed-date>2008-08-20T14:29:52-07:00</committed-date>
  <authored-date>2008-08-20T14:29:52-07:00</authored-date>
  <message>Modify example to use an Observer</message>
  <tree>27b4145b5b2ff8f8d9530b6d2174cf83a8d0a1a1</tree>
  <committer>
    <name>James Smith</name>
    <email>james@floppy.org.uk</email>
  </committer>
</commit>
