# HG changeset patch
# User Jeff Hammel <jhammel@mozilla.com>
# Date 1335684658 25200
# Node ID 290c40224e5d8cbebe1a59c5cfb1b69bfe6358fd
# Parent  291fbbeb6e1edcd421ef2c0b5fc9615ca247b509
improved abstraction; sadly doesnt seem to work

diff -r 291fbbeb6e1e -r 290c40224e5d configuration/configuration.py
--- a/configuration/configuration.py	Sat Apr 28 23:25:52 2012 -0700
+++ b/configuration/configuration.py	Sun Apr 29 00:30:58 2012 -0700
@@ -409,11 +409,7 @@
             pass
 
         # dump configuration
-        self.dump(options)
-
-        if missingvalues and not getattr(options, 'dump', None):
-            # XXX assuming if you don't have values you were just dumping
-            self.error(str(missingvalues))
+        dump = self.dump(options, missingvalues)
 
         # update options from config
         options.__dict__.update(self.config)
@@ -421,13 +417,15 @@
         # return parsed arguments
         return options, args
 
-    def dump(self, options):
+    def dump(self, options, missingvalues):
         """dump configuration, if specified"""
 
         dump = getattr(options, 'dump')
         if dump:
             # TODO: have a way of specifying format other than filename
             self.serialize(dump)
+        elif missingvalues:
+            self.error(str(missingvalues))
 
     ### serialization/deserialization