[Checkins] SVN: hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/ hashing is optional, but "on" by default, more tests pass

Jan-Wijbrand Kolman janwijbrand at gmail.com
Wed Nov 24 09:43:27 EST 2010


Log message for revision 118561:
  hashing is optional, but "on" by default, more tests pass

Changed:
  U   hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/README.txt
  U   hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/core.py

-=-
Modified: hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/README.txt
===================================================================
--- hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/README.txt	2010-11-24 14:29:46 UTC (rev 118560)
+++ hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/README.txt	2010-11-24 14:43:27 UTC (rev 118561)
@@ -743,10 +743,10 @@
   >>> first_url == second_url
   True
 
-When we set devmode, the segment will have changed::
+When we set ``devmode=True``, the segment will have changed::
 
-  >>> needed = NeededInclusions(devmode=True)
-  >>> third_url = needed.library_url(foo)
+  >>> needed_in_devmode = NeededInclusions(devmode=True)
+  >>> third_url = needed_in_devmode.library_url(foo)
   >>> third_url
   '/fanstatic/:hash:.../foo'  
 
@@ -755,11 +755,18 @@
   >>> first_url == third_url
   False
 
+  >>> needed.library_url(foo) == needed_in_devmode.library_url(foo)
+  False
+
 Reset the file contents:
 
   >>> open(mypackage_style, 'w').write(original_contents)
 
+Hashing is on by default, but can be turned off:
 
+  >>> needed_no_hashing = NeededInclusions(hashing=False)
+  >>> needed_no_hashing.library_url(foo)
+  '/fanstatic/foo'
 
 
 
@@ -775,7 +782,6 @@
 
 
 
-
 Any VCS directories are ignored in calculating the hash:
 
   >>> import os

Modified: hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/core.py
===================================================================
--- hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/core.py	2010-11-24 14:29:46 UTC (rev 118560)
+++ hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/core.py	2010-11-24 14:43:27 UTC (rev 118561)
@@ -21,10 +21,10 @@
 
     def signature(self, devmode=False):
         if devmode:
-            # Always recalculate.
+            # Always re-compute.
             sig = hurry.resource.hash.checksum(self.path)
         elif self._signature is None:
-            # Only recalculate if not calculated before.
+            # Only compute if not conputed before.
             sig = self._signature = hurry.resource.hash.checksum(self.path)
         else:
             # Use cached value.
@@ -188,15 +188,17 @@
                  bottom=False,
                  force_bottom=False,
                  devmode=False,
+                 hashing=True,
                  publisher_signature='fanstatic'
                  ):
         self.base_url = base_url
-        self.devmode = devmode
-        self.publisher_signature = publisher_signature
         self._inclusions = inclusions or []
         self._mode = mode
         self._rollup = rollup
         self._bottom = bottom
+        self.devmode = devmode
+        self.hashing = hashing
+        self.publisher_signature = publisher_signature
 
     def __len__(self):
         return len(self._inclusions)
@@ -223,11 +225,11 @@
         return inclusions
 
     def library_url(self, library):
-        return '%s/%s/%s/%s' % (
-            self.base_url,
-            self.publisher_signature,
-            library.signature(devmode=self.devmode),
-            library.name)
+        segments = [self.base_url, self.publisher_signature]
+        if self.hashing:
+            segments.append(library.signature(devmode=self.devmode))
+        segments.append(library.name)
+        return '/'.join(segments)
 
     def render(self):
         """Render a set of inclusions.



More information about the checkins mailing list