[KSS-checkins] r43325 - kukit/kss.pylons/trunk/kss/pylons
jvloothuis at codespeak.net
jvloothuis at codespeak.net
Mon May 14 00:25:46 CEST 2007
Author: jvloothuis
Date: Mon May 14 00:25:46 2007
New Revision: 43325
Added:
kukit/kss.pylons/trunk/kss/pylons/EXTERNALS.txt
kukit/kss.pylons/trunk/kss/pylons/middleware.py
Modified:
kukit/kss.pylons/trunk/kss/pylons/helpers.py
kukit/kss.pylons/trunk/kss/pylons/middleware.txt
kukit/kss.pylons/trunk/kss/pylons/tests.py
Log:
Added middleware for loading KSS javascripts. This makes sure the url's
generated from the helper are actually usable.
Added: kukit/kss.pylons/trunk/kss/pylons/EXTERNALS.txt
==============================================================================
--- (empty file)
+++ kukit/kss.pylons/trunk/kss/pylons/EXTERNALS.txt Mon May 14 00:25:46 2007
@@ -0,0 +1,5 @@
+# created by: svn propset svn:externals -F ./EXTERNALS.txt .
+#
+
+# kss related packages
+kukit https://codespeak.net/svn/kukit/kukit.js/trunk
Modified: kukit/kss.pylons/trunk/kss/pylons/helpers.py
==============================================================================
--- kukit/kss.pylons/trunk/kss/pylons/helpers.py (original)
+++ kukit/kss.pylons/trunk/kss/pylons/helpers.py Mon May 14 00:25:46 2007
@@ -1,28 +1,32 @@
-def kss_javascripts():
- tag = '<script type="text/javascript" src="/kss/%s"></script>'
- scripts = [
- 'utils.js',
- 'kukit.js',
- 'actionreg.js',
- 'base2-dom-fp.js',
- 'commandprocessor.js',
- 'commandreg.js',
- 'cssQuery.js',
- 'dom.js',
- 'errors.js',
- 'eventreg.js',
- 'MochiKit.js',
- 'oper.js',
- 'plugin.js',
- 'providerreg.js',
- 'requestmanager.js',
- 'resourcedata.js',
- 'sarissa.js',
- 'selectorreg.js',
- 'serveraction.js',
- 'tokenizer.js',
- 'forms.js',
- 'kssparser.js',
- ]
+import os
+
+javascript_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),
+ 'kukit')
- return ''.join([tag % script for script in scripts])
+java_scripts = [
+ '3rd_party/sarissa.js',
+ '3rd_party/base2-dom-fp.js',
+ '3rd_party/cssQuery.js',
+ 'kukit/utils.js',
+ 'kukit/kukit.js',
+ 'kukit/actionreg.js',
+ 'kukit/commandprocessor.js',
+ 'kukit/commandreg.js',
+ 'kukit/dom.js',
+ 'kukit/errors.js',
+ 'kukit/eventreg.js',
+ 'kukit/oper.js',
+ 'kukit/plugin.js',
+ 'kukit/providerreg.js',
+ 'kukit/requestmanager.js',
+ 'kukit/resourcedata.js',
+ 'kukit/selectorreg.js',
+ 'kukit/serveraction.js',
+ 'kukit/tokenizer.js',
+ 'kukit/forms.js',
+ 'kukit/kssparser.js',
+]
+
+def kss_javascripts():
+ tag = '<script type="text/javascript" src="/kukit/%s"></script>'
+ return ''.join([tag % script for script in java_scripts])
Added: kukit/kss.pylons/trunk/kss/pylons/middleware.py
==============================================================================
--- (empty file)
+++ kukit/kss.pylons/trunk/kss/pylons/middleware.py Mon May 14 00:25:46 2007
@@ -0,0 +1,15 @@
+import os
+from paste.urlparser import StaticURLParser
+from kss.pylons.helpers import javascript_path
+
+class StaticKSSJavascripts(object):
+
+ def __init__(self):
+ self.javascripts_app = StaticURLParser(
+ os.path.dirname(javascript_path))
+
+ def __call__(self, environ, start_response):
+ if environ.get('PATH_INFO', '').startswith('/kukit/'):
+ return self.javascripts_app(environ, start_response)
+ else:
+ return self.javascripts_app.not_found(environ, start_response)
Modified: kukit/kss.pylons/trunk/kss/pylons/middleware.txt
==============================================================================
--- kukit/kss.pylons/trunk/kss/pylons/middleware.txt (original)
+++ kukit/kss.pylons/trunk/kss/pylons/middleware.txt Mon May 14 00:25:46 2007
@@ -10,3 +10,20 @@
Because KSS is in part a client framework we need to load some Javascript on
the client side. This middleware component makes sure that all lookups for KSS
related scripts are properly loaded from disk.
+
+Let us look at the middleware in action.
+
+ >>> from paste.fixture import TestApp
+ >>> from kss.pylons.middleware import StaticKSSJavascripts
+ >>> middleware = StaticKSSJavascripts()
+ >>> testapp = TestApp(middleware)
+
+Now we can call it. It only responds to paths starting with `/kukit/`.
+
+
+ >>> res = testapp.get('/some/other.js', status=404)
+
+ >>> res = testapp.get('/kukit/kukit/utils.js')
+ >>> res.body
+ '...Copyright...'
+
Modified: kukit/kss.pylons/trunk/kss/pylons/tests.py
==============================================================================
--- kukit/kss.pylons/trunk/kss/pylons/tests.py (original)
+++ kukit/kss.pylons/trunk/kss/pylons/tests.py Mon May 14 00:25:46 2007
@@ -4,7 +4,7 @@
def test_suite():
suite = unittest.TestSuite((
doctest.DocFileSuite(
- 'helpers.txt',
+ 'helpers.txt', 'middleware.txt',
package='kss.pylons',
optionflags=doctest.ELLIPSIS,
),
More information about the Kukit-checkins
mailing list