prewikka/master: Remove code duplication.

[email protected]
Newsgroups gmane.comp.security.ids.prelude.cvs
Message-ID <[email protected]>
commit c3c2ad226fdcf022c936add0c82debe549770d35
Author: Yoann Vandoorselaere <[email protected]>
Date:   Fri May 22 12:56:55 2009 +0200

    Remove code duplication.


========================================

 prewikka/view.py |   30 ++++++++++++++----------------
 1 files changed, 14 insertions(+), 16 deletions(-)

========================================

diff --git a/prewikka/view.py b/prewikka/view.py
index 89335c2..0f44e2e 100644
--- a/prewikka/view.py
+++ b/prewikka/view.py
@@ -63,12 +63,24 @@ class Parameters(dict):
     def optional(self, name, type, default=None, save=False):
         self._parameters[name] = { "type": type, "mandatory": False, "default": default, "save": save }
 
+    def _parseValue(self, name, value):
+        parameter_type = self._parameters[name]["type"]
+        if parameter_type is list and not type(value) is list:
+            value = [ value ]
+
+        try:
+            value = parameter_type(value)
+        except (ValueError, TypeError):
+            raise InvalidParameterValueError(name, value)
+
+        return value
+
     def normalize(self, view, user):
         do_load = True
 
         for name, value in self.items():
             try:
-                parameter_type = self._parameters[name]["type"]
+                value = self._parseValue(name, value)
             except KeyError:
                 if self.allow_extra_parameters:
                     continue
@@ -78,14 +90,6 @@ class Parameters(dict):
             if not self._parameters.has_key(name) or self._parameters[name]["mandatory"] is not True:
                 do_load = False
 
-            if parameter_type is list and not type(value) is list:
-                value = [ value ]
-
-            try:
-                value = parameter_type(value)
-            except (ValueError, TypeError):
-                raise InvalidParameterValueError(name, value)
-
             if self._parameters[name]["save"] and self.has_key("_save"):
                 user.setConfigValue(view, name, value)
 
@@ -108,13 +112,7 @@ class Parameters(dict):
 
             if self._parameters[name]["save"] and do_load:
                 try:
-                    value = user.getConfigValue(view, name)
-
-                    parameter_type = self._parameters[name]["type"]
-                    if parameter_type is list and not type(value) is list:
-                        value = [ value ]
-
-                    self[name] = parameter_type(value)
+                    self[name]= self._parseValue(name, user.getConfigValue(view, name))
 
                 except KeyError:
                     pass
_______________________________________________
Prelude-cvslog site list
[email protected]
http://lists.prelude-ids.org/mailman/listinfo/prelude-cvslog
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.