r339 - / python-zc.resourcelibrary
python-zc.resourcelibrary/branches
python-zc.resourcelibrary/branches/upstream
python-zc.resourcelibrary/branches/upstream/current
python-zc.resourcelibrary/branches/upstream/current/src
python-zc.resourcelibrary/branches/upstream/current/src/zc
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/my-lib
python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info
Brian Sutherland
jinty-guest at costa.debian.org
Wed Oct 25 09:37:51 UTC 2006
Author: jinty-guest
Date: 2006-10-25 09:37:50 +0000 (Wed, 25 Oct 2006)
New Revision: 339
Added:
python-zc.resourcelibrary/
python-zc.resourcelibrary/branches/
python-zc.resourcelibrary/branches/upstream/
python-zc.resourcelibrary/branches/upstream/current/
python-zc.resourcelibrary/branches/upstream/current/Makefile
python-zc.resourcelibrary/branches/upstream/current/PKG-INFO
python-zc.resourcelibrary/branches/upstream/current/ZopePublicLicense.txt
python-zc.resourcelibrary/branches/upstream/current/setup.py
python-zc.resourcelibrary/branches/upstream/current/src/
python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/
python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/PKG-INFO
python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/SOURCES.txt
python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/namespace_packages.txt
python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/not-zip-safe
python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/top_level.txt
python-zc.resourcelibrary/branches/upstream/current/src/zc/
python-zc.resourcelibrary/branches/upstream/current/src/zc/__init__.py
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/README.txt
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/SETUP.cfg
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/__init__.py
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/configure.zcml
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/__init__.py
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/configure.zcml
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/1.js
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/2.css
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/my-lib/
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/my-lib/included.css
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/my-lib/included.js
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_doc.py
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_1.pt
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_2.pt
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_3.pt
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_4.pt
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/meta.zcml
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/publication.py
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/resourcelibrary.py
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/tal.py
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-configure.zcml
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-ftesting.zcml
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-meta.zcml
python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zcml.py
python-zc.resourcelibrary/tags/
Log:
[svn-inject] Installing original source of python-zc.resourcelibrary
Added: python-zc.resourcelibrary/branches/upstream/current/Makefile
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/Makefile (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/Makefile 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,19 @@
+PYVERS=2.4
+
+all:
+ # nothing for now
+
+clean: $(PYVERS:%=clean-python%)
+ rm -rf dist
+ rm -rf build
+ rm -rf src/*.egg-info
+
+clean-python%:
+ python$* setup.py clean
+
+.PHONY: dist
+dist: clean $(PYVERS:%=build-python%-egg)
+ python setup.py sdist
+
+build-python%-egg:
+ python$* setup.py bdist_egg
Property changes on: python-zc.resourcelibrary/branches/upstream/current/Makefile
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/PKG-INFO
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/PKG-INFO (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/PKG-INFO 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,14 @@
+Metadata-Version: 1.0
+Name: zc.resourcelibrary
+Version: 0.5.2
+Summary: The resource library is a Zope 3 extension that is designed to make the
+inclusion of JavaScript, CSS, and other resources easy, cache-friendly,
+and component-friendly.
+
+Home-page: UNKNOWN
+Author: Zope Project
+Author-email: zope3-dev at zope.org
+License: ZPL
+Description: UNKNOWN
+Keywords: zope zope3
+Platform: UNKNOWN
Added: python-zc.resourcelibrary/branches/upstream/current/ZopePublicLicense.txt
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/ZopePublicLicense.txt (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/ZopePublicLicense.txt 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,54 @@
+Zope Public License (ZPL) Version 2.1
+-------------------------------------
+
+A copyright notice accompanies this license document that
+identifies the copyright holders.
+
+This license has been certified as open source. It has also
+been designated as GPL compatible by the Free Software
+Foundation (FSF).
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the
+following conditions are met:
+
+1. Redistributions in source code must retain the
+ accompanying copyright notice, this list of conditions,
+ and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the accompanying
+ copyright notice, this list of conditions, and the
+ following disclaimer in the documentation and/or other
+ materials provided with the distribution.
+
+3. Names of the copyright holders must not be used to
+ endorse or promote products derived from this software
+ without prior written permission from the copyright
+ holders.
+
+4. The right to distribute this software or to use it for
+ any purpose does not give you the right to use
+ Servicemarks (sm) or Trademarks (tm) of the copyright
+ holders. Use of them is covered by separate agreement
+ with the copyright holders.
+
+5. If any files are modified, you must cause the modified
+ files to carry prominent notices stating that you changed
+ the files and the date of any change.
+
+Disclaimer
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS''
+ AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+ NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ NO EVENT SHALL THE COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
Property changes on: python-zc.resourcelibrary/branches/upstream/current/ZopePublicLicense.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/setup.py
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/setup.py (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/setup.py 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,25 @@
+from setuptools import setup, find_packages
+
+setup(
+ name="zc.resourcelibrary",
+ version="0.5.2",
+ packages=find_packages('src', exclude=["*.tests", "*.ftests"]),
+
+ package_dir= {'':'src'},
+
+ namespace_packages=['zc'],
+ package_data = {
+ '': ['*.txt', '*.zcml'],
+ },
+
+ zip_safe=False,
+ author='Zope Project',
+ author_email='zope3-dev at zope.org',
+ description="""\
+The resource library is a Zope 3 extension that is designed to make the
+inclusion of JavaScript, CSS, and other resources easy, cache-friendly,
+and component-friendly.
+""",
+ license='ZPL',
+ keywords="zope zope3",
+ )
Property changes on: python-zc.resourcelibrary/branches/upstream/current/setup.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/__init__.py
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/__init__.py (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/__init__.py 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,5 @@
+# this is a namespace package
+try:
+ __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+ pass
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/__init__.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/README.txt
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/README.txt (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/README.txt 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,247 @@
+================
+Resource Library
+================
+
+The resource library is designed to make the inclusion of JavaScript, CSS, and
+other resources easy, cache-friendly, and component-friendly. For instance, if
+two widgets on a page need the same JavaScript library, the library should be
+only loaded once, but the widget designers should not have to concern
+themselves with the presence of other widgets.
+
+Imagine that one widget has a copy of a fictional Javascript library. To
+configure that library as available use ZCML like this:
+
+ >>> zcml("""
+ ... <configure
+ ... xmlns="http://namespaces.zope.org/zope"
+ ... package="zc.resourcelibrary">
+ ...
+ ... <resourceLibrary name="some-library">
+ ... <directory source="ftests/example"/>
+ ... </resourceLibrary>
+ ...
+ ... </configure>
+ ... """)
+
+This is exactly equivalent to a resourceDirectory tag, with no additional
+effect.
+
+Loading Files
+-------------
+
+It is also possible to indicate that one or more Javascript or CSS files should
+be included (by reference) into the HTML of a page that needs the library.
+This is the current difference between resourceLibrary and resourceDirectory.
+
+ >>> zcml("""
+ ... <configure
+ ... xmlns="http://namespaces.zope.org/zope"
+ ... package="zc.resourcelibrary">
+ ...
+ ... <resourceLibrary name="my-lib">
+ ... <directory
+ ... source="ftests/example/my-lib"
+ ... include="included.js included.css"
+ ... />
+ ... </resourceLibrary>
+ ...
+ ... </configure>
+ ... """)
+
+If a file is included that the resource library doesn't understand (i.e. it
+isn't Javascript or CSS), an exception will occur.
+
+ >>> zcml("""
+ ... <configure
+ ... xmlns="http://namespaces.zope.org/zope"
+ ... package="zc.resourcelibrary">
+ ...
+ ... <resourceLibrary name="bad-lib">
+ ... <directory
+ ... source="ftests/example/my-lib"
+ ... include="included.bad"
+ ... />
+ ... </resourceLibrary>
+ ...
+ ... </configure>
+ ... """)
+ Traceback (most recent call last):
+ ...
+ ZopeXMLConfigurationError:...
+ ConfigurationError: Resource library doesn't know how to include this
+ file: "included.bad".
+
+Usage
+-----
+
+Components signal their need for a particular resource library (Javascript or
+otherwise) by using a special TAL expression. (The use of replace is not
+mandated, the result may be assigned to a dummy variable, or otherwise
+ignored.)
+
+ >>> zpt('<tal:block replace="resource_library:my-lib"/>')
+
+We'll be using a testbrowser.Browser to simulate a user viewing web pages.
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> browser = Browser()
+ >>> browser.addHeader('Authorization', 'Basic mgr:mgrpw')
+
+When a page is requested that does not need any resource libraries, the HTML
+will be untouched.
+
+ >>> browser.open('http://localhost/zc.resourcelibrary.test_template_1')
+ >>> browser.contents
+ '...<head></head>...'
+
+When a page is requested that uses a component that needs a resource library,
+the library will be referenced in the rendered page.
+
+ >>> browser.open('http://localhost/zc.resourcelibrary.test_template_2')
+
+A reference to the JavaScript is inserted into the HTML.
+
+ >>> '/@@/my-lib/included.js' in browser.contents
+ True
+
+And the JavaScript is available from the URL referenced.
+
+ >>> browser.open('/@@/my-lib/included.js')
+ >>> print browser.contents
+ function be_annoying() {
+ alert('Hi there!');
+ }
+
+A reference to the CSS is also inserted into the HTML.
+
+ >>> browser.open('http://localhost/zc.resourcelibrary.test_template_2')
+ >>> '/@@/my-lib/included.css' in browser.contents
+ True
+
+And the CSS is available from the URL referenced.
+
+ >>> browser.open('/@@/my-lib/included.css')
+ >>> print browser.contents
+ div .border {
+ border: 1px silid black;
+ }
+
+A reference to an unknown library causes an exception.
+
+ >>> browser.open('http://localhost/zc.resourcelibrary.test_template_3')
+ Traceback (most recent call last):
+ ...
+ RuntimeError: Unknown resource library: "does-not-exist"
+
+Library usage may also be signaled programattically. For example, if a page
+would not otherwise include a resource library...
+
+ >>> page = ('<html><head></head>'
+ ... '<body tal:define="unused view/doSomething">'
+ ... 'This is the body.</body>')
+
+ >>> class View(object):
+ ... def doSomething(self):
+ ... pass
+
+ >>> zpt(page, view=View())
+ '...<head></head>...'
+
+...but we programmatically indicate that a resource library is needed, it will
+be included.
+
+ >>> import zc.resourcelibrary
+ >>> class View(object):
+ ... def doSomething(self):
+ ... zc.resourcelibrary.need('my-lib')
+
+ >>> '/@@/my-lib/included.js' in zpt(page, view=View())
+ True
+
+Dependencies
+------------
+
+If a resource library registers a dependency on another library, the dependency
+must be satisfied or an error will be generated.
+
+ >>> zcml("""
+ ... <configure
+ ... xmlns="http://namespaces.zope.org/zope"
+ ... package="zc.resourcelibrary">
+ ...
+ ... <resourceLibrary name="dependent-but-unsatisfied" require="not-here">
+ ... <directory source="ftests/example"/>
+ ... </resourceLibrary>
+ ...
+ ... </configure>
+ ... """)
+ Traceback (most recent call last):
+ ...
+ ConfigurationExecutionError:...Resource library "dependent-but-unsatisfied"
+ has unsatisfied dependency on "not-here"...
+
+When the dependencies are satisfied, the registrations will succeed.
+
+ >>> zcml("""
+ ... <configure
+ ... xmlns="http://namespaces.zope.org/zope"
+ ... package="zc.resourcelibrary">
+ ...
+ ... <resourceLibrary name="dependent" require="dependency">
+ ... <directory source="ftests/example" include="1.js"/>
+ ... </resourceLibrary>
+ ...
+ ... <resourceLibrary name="dependency">
+ ... <directory source="ftests/example" include="2.css"/>
+ ... </resourceLibrary>
+ ...
+ ... </configure>
+ ... """)
+
+If one library depends on another and the first library is referenced on a
+page, the second library will also be included in the rendered HTML.
+
+ >>> zpt('<tal:block replace="resource_library:dependent"/>')
+ >>> browser.open('http://localhost/zc.resourcelibrary.test_template_4')
+ >>> '/@@/dependent/1.js' in browser.contents
+ True
+ >>> '/@@/dependency/2.css' in browser.contents
+ True
+
+Order matters, espacially for js files, so the dependency should
+appear before the dependent library in the page
+
+ >>> print browser.contents.strip()
+ <html>...dependency/2.css...dependent/1.js...</html>
+
+Error Conditions
+----------------
+
+Errors are reported if you do something wrong.
+
+ >>> zcml("""
+ ... <configure
+ ... xmlns="http://namespaces.zope.org/zope"
+ ... package="zc.resourcelibrary">
+ ...
+ ... <resourceLibrary name="some-library">
+ ... <directory source="does-not-exist"/>
+ ... </resourceLibrary>
+ ...
+ ... </configure>
+ ... """)
+ Traceback (most recent call last):
+ ...
+ ZopeXMLConfigurationError: ...
+ ConfigurationError: Directory u'...does-not-exist' does not exist
+
+Future Work
+-----------
+
+ * We want to be able to specify a single file to add to the resource.
+ * We may want to be able to override a file in the resource with a different
+ file.
+ * Currently only one <directory> tag is allowed per-library. If multiple tags
+ are allowed, should they be merged or have distinct prefixes?
+ * Add a test to ensure that files are only included once, and in the proper
+ order
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/README.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/SETUP.cfg
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/SETUP.cfg (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/SETUP.cfg 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,3 @@
+<data-files zopeskel/etc/package-includes>
+ zc.resourcelibrary-*.zcml
+</data-files>
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/__init__.py
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/__init__.py (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/__init__.py 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1 @@
+from resourcelibrary import getRequired, getIncluded, need
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/__init__.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/configure.zcml
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/configure.zcml (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/configure.zcml 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,17 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:tales="http://namespaces.zope.org/tales"
+ i18n_domain="zc.resourcelibrary"
+ >
+
+ <tales:expressiontype
+ name="resource_library"
+ handler=".tal.ResourceLibraryExpression"
+ />
+
+ <utility
+ component=".publication.Request"
+ provides="zope.app.publication.interfaces.IBrowserRequestFactory"
+ />
+
+</configure>
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/configure.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/__init__.py
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/__init__.py (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/__init__.py 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1 @@
+#
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/__init__.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/configure.zcml
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/configure.zcml (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/configure.zcml 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,37 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ xmlns:zc="http://namespaces.zope.com/zc"
+ i18n_domain="zope"
+ package="zc.resourcelibrary.ftests"
+ >
+
+ <browser:page
+ for="zope.app.folder.interfaces.IFolder"
+ name="zc.resourcelibrary.test_template_1"
+ permission="zope.View"
+ template="test_template_1.pt"
+ />
+
+ <browser:page
+ for="zope.app.folder.interfaces.IFolder"
+ name="zc.resourcelibrary.test_template_2"
+ permission="zope.View"
+ template="test_template_2.pt"
+ />
+
+ <browser:page
+ for="zope.app.folder.interfaces.IFolder"
+ name="zc.resourcelibrary.test_template_3"
+ permission="zope.View"
+ template="test_template_3.pt"
+ />
+
+ <browser:page
+ for="zope.app.folder.interfaces.IFolder"
+ name="zc.resourcelibrary.test_template_4"
+ permission="zope.View"
+ template="test_template_4.pt"
+ />
+
+</configure>
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/configure.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/1.js
===================================================================
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/2.css
===================================================================
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/my-lib/included.css
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/my-lib/included.css (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/my-lib/included.css 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,3 @@
+div .border {
+ border: 1px silid black;
+}
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/my-lib/included.js
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/my-lib/included.js (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/example/my-lib/included.js 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,3 @@
+function be_annoying() {
+ alert('Hi there!');
+}
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_doc.py
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_doc.py (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_doc.py 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,86 @@
+##############################################################################
+#
+# Copyright (c) 2004 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+$Id: ntests.py 3330 2005-09-09 23:05:34Z jim $
+"""
+from StringIO import StringIO
+from zc.resourcelibrary import publication
+from zc.resourcelibrary import tal
+from zope.app.testing import functional
+from zope.configuration import xmlconfig
+from zope import component, interface
+from zope.pagetemplate import pagetemplate
+import doctest
+import os
+import pytz
+import unittest
+import zope.interface.common.idatetime
+import zope.publisher.interfaces
+import zope.security.interfaces
+import zope.security.management
+import zope.testing.module
+
+#### testing framework ####
+
+def zcml(s, execute=True):
+ from zope.app.appsetup.appsetup import __config_context as context
+ try:
+ xmlconfig.string(s, context, execute=execute)
+ except:
+ context.end()
+ raise
+
+
+class TestPageTemplate(pagetemplate.PageTemplate):
+ def __init__(self, view):
+ self.view = view
+ super(TestPageTemplate, self).__init__()
+
+ def pt_getContext(self, *args, **kws):
+ context = super(TestPageTemplate, self).pt_getContext(*args, **kws)
+ context['view'] = self.view
+ return context
+
+
+def zpt(s, view=None):
+ request = publication.Request(body_instream=StringIO(''), environ={})
+ zope.security.management.newInteraction(request)
+ pt = TestPageTemplate(view)
+
+ # if the resource library expression hasn't been registered, do so
+ engine = pt.pt_getEngine()
+ type_name = 'resource_library'
+ if type_name not in engine.types:
+ engine.registerType(type_name, tal.ResourceLibraryExpression)
+
+ pt.write(s)
+ html = pt()
+ zope.security.management.endInteraction()
+
+ if html:
+ request.response.setResult(html)
+ return request.response.consumeBody()
+
+#### test setup ####
+
+def test_suite():
+ suite = functional.FunctionalDocFileSuite(
+ '../README.txt',
+ globs={'zcml': zcml, 'zpt': zpt},
+ optionflags=doctest.NORMALIZE_WHITESPACE+doctest.ELLIPSIS,
+ )
+ return suite
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='test_suite')
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_doc.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_1.pt
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_1.pt (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_1.pt 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,4 @@
+<html>
+ <head></head>
+ <body></body>
+</html>
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_1.pt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_2.pt
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_2.pt (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_2.pt 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,6 @@
+<html>
+ <head></head>
+ <body>
+ <tal:block replace="structure resource_library:my-lib"/>
+ </body>
+</html>
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_2.pt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_3.pt
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_3.pt (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_3.pt 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,6 @@
+<html>
+ <head></head>
+ <body>
+ <tal:block replace="structure resource_library:does-not-exist"/>
+ </body>
+</html>
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_3.pt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_4.pt
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_4.pt (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_4.pt 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,6 @@
+<html>
+ <head></head>
+ <body>
+ <tal:block replace="structure resource_library:dependent"/>
+ </body>
+</html>
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/ftests/test_template_4.pt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/meta.zcml
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/meta.zcml (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/meta.zcml 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,24 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:meta="http://namespaces.zope.org/meta">
+
+ <meta:directives namespace="http://namespaces.zope.org/zope">
+
+ <meta:complexDirective
+ name="resourceLibrary"
+ schema=".zcml.IResourceLibraryDirective"
+ handler=".zcml.ResourceLibrary"
+ >
+
+ <meta:subdirective
+ name="directory"
+ schema=".zcml.IDirectoryDirective"
+ />
+
+ </meta:complexDirective>
+
+ </meta:directives>
+
+ <meta:provides feature="zc.resourcelibrary" />
+
+</configure>
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/meta.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/publication.py
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/publication.py (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/publication.py 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,92 @@
+##############################################################################
+#
+# Copyright (c) 2004 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+$Id: publication.py 4528 2005-12-23 02:45:25Z gary $
+"""
+from zope import interface
+from zope.app.publication.interfaces import IBrowserRequestFactory
+from zope.publisher.browser import BrowserRequest, BrowserResponse
+from zope.publisher.browser import isHTML
+import zc.resourcelibrary.zcml
+
+class Request(BrowserRequest):
+ interface.classProvides(IBrowserRequestFactory)
+ # __slots__ = ('resource_libraries',)
+
+ def _createResponse(self):
+ response = Response()
+ self.resource_libraries = response.resource_libraries = []
+ return response
+
+
+class Response(BrowserResponse):
+
+ def _implicitResult(self, body):
+
+ #figure out the content type
+ content_type = self.getHeader('content-type')
+ if content_type is None:
+ if isHTML(body):
+ content_type = 'text/html'
+
+ if content_type == 'text/html' or content_type == 'text/xml':
+ #act on HTML and XML content only!
+
+ # add any libraries that the explicitly referenced libraries require
+ libs = list(self.resource_libraries)
+ while libs:
+ lib = libs.pop()
+ try:
+ required = zc.resourcelibrary.getRequired(lib)
+ except KeyError:
+ raise RuntimeError('Unknown resource library: "%s"' % lib)
+ for lib in required:
+ if lib not in self.resource_libraries:
+ self.resource_libraries.append(lib)
+ libs.append(lib)
+
+ # reverse the order of the libs in order to have the
+ # dependencies first. TODO: this does not work if the
+ # dependency is needed directly in the page before the
+ # dependent lib is needed.
+ self.resource_libraries.reverse()
+
+ # generate the HTML that will be included in the response
+ html = []
+ for lib in self.resource_libraries:
+ included = zc.resourcelibrary.getIncluded(lib)
+ for file_name in included:
+ if file_name.endswith('.js'):
+ html.append('<script src="/@@/%s/%s" '
+ 'language="Javascript1.1"' % (lib, file_name))
+ html.append(' type="text/javascript">')
+ html.append('</script>')
+ elif file_name.endswith('.css'):
+ html.append('<style type="text/css" media="all">')
+ html.append(' <!--')
+ html.append(' @import url("/@@/%s/%s");'
+ % (lib, file_name))
+ html.append(' -->')
+ html.append('</style>')
+ else:
+ # shouldn't get here; zcml.py is supposed to check includes
+ raise RuntimeError('Resource library doesn\'t know how to '
+ 'include this file: "%s"' % file_name)
+
+ if html:
+ body = body.replace('<head>', '<head>\n %s\n' %
+ '\n '.join(html))
+
+
+ return super(Response, self)._implicitResult(body)
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/publication.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/resourcelibrary.py
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/resourcelibrary.py (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/resourcelibrary.py 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,48 @@
+##############################################################################
+#
+# Copyright (c) 2004 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+from zope.publisher.interfaces import IRequest
+import zope.security.management
+import zope.security.interfaces
+
+library_info = {}
+
+class LibraryInfo(object):
+ def __init__(self):
+ self.included = []
+ self.required = []
+
+
+def getRequest():
+ try:
+ i = zope.security.management.getInteraction() # raises NoInteraction
+ except zope.security.interfaces.NoInteraction:
+ return
+
+ for p in i.participations:
+ if IRequest.providedBy(p):
+ return p
+
+def need(library_name):
+ request = getRequest()
+ # only take note of needed libraries if there is a request, and it is
+ # capable of handling resource librarys
+ if request and hasattr(request, 'resource_libraries'):
+ if not library_name in request.resource_libraries:
+ request.resource_libraries.append(library_name)
+
+def getRequired(name):
+ return library_info[name].required
+
+def getIncluded(name):
+ return library_info[name].included
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/resourcelibrary.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/tal.py
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/tal.py (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/tal.py 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,26 @@
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Resource Library Expression Type
+
+$Id: tal.py 3268 2005-08-22 23:31:27Z benji $
+"""
+from zope.tales.expressions import StringExpr
+from zc.resourcelibrary import resourcelibrary
+
+class ResourceLibraryExpression(StringExpr):
+ """Resource library expression handler class"""
+
+ def __call__(self, econtext):
+ resourcelibrary.need(self._expr)
+ return ''
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/tal.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-configure.zcml
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-configure.zcml (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-configure.zcml 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1 @@
+<include package="zc.resourcelibrary"/>
\ No newline at end of file
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-configure.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-ftesting.zcml
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-ftesting.zcml (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-ftesting.zcml 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1 @@
+<include package="zc.resourcelibrary.ftests"/>
\ No newline at end of file
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-ftesting.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-meta.zcml
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-meta.zcml (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-meta.zcml 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1 @@
+<include package="zc.resourcelibrary" file="meta.zcml"/>
\ No newline at end of file
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zc.resourcelibrary-meta.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zcml.py
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zcml.py (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zcml.py 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,119 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+from zc.resourcelibrary.resourcelibrary import LibraryInfo, library_info
+from zope.app import zapi
+from zope.app.publisher.browser import directoryresource
+from zope.app.publisher.browser.metadirectives import IBasicResourceInformation
+from zope.app.publisher.browser.resourcemeta import allowed_names
+from zope.configuration.exceptions import ConfigurationError
+from zope.interface import Interface
+from zope.publisher.interfaces.browser import IBrowserRequest
+from zope.publisher.interfaces.browser import IDefaultBrowserLayer
+from zope.security.checker import CheckerPublic, NamesChecker
+import os.path
+import zope.configuration.fields
+
+class IResourceLibraryDirective(IBasicResourceInformation):
+ """
+ Defines a resource library
+ """
+
+ name = zope.schema.TextLine(
+ title=u"The name of the resource library",
+ description=u"""\
+ This is the name used to disambiguate resource libraries. No two
+ libraries can be active with the same name.""",
+ required=True,
+ )
+
+ require = zope.configuration.fields.Tokens(
+ title=u"Require",
+ description=u"The resource libraries on which this library depends.",
+ required=False,
+ value_type=zope.schema.Text(),
+ )
+
+
+class IDirectoryDirective(Interface):
+ """
+ Identifies a directory to be included in a resource library
+ """
+
+ source = zope.configuration.fields.Path(
+ title=u"Source",
+ description=u"The directory containing the files to add.",
+ required=True,
+ )
+
+ include = zope.configuration.fields.Tokens(
+ title=u"Include",
+ description=u"The files which should be included in HTML pages which "
+ u"reference this resource library.",
+ required=False,
+ value_type=zope.schema.Text(),
+ )
+
+
+def handler(name, dependencies, required, provided, adapter_name, factory, info=''):
+ if dependencies:
+ for dep in dependencies:
+ if dep not in library_info:
+ raise ConfigurationError(
+ 'Resource library "%s" has unsatisfied dependency on "%s".'
+ % (name, dep))
+ zapi.getGlobalSiteManager().registerAdapter(
+ factory, required, provided, adapter_name, info)
+
+
+INCLUDABLE_EXTENTIONS = ('.js', '.css')
+
+class ResourceLibrary(object):
+
+ def __init__(self, _context, name, require=(),
+ layer=IDefaultBrowserLayer, permission='zope.Public'):
+ self.name = name
+ self.layer = layer
+
+ if permission == 'zope.Public':
+ permission = CheckerPublic
+ self.checker = NamesChecker(allowed_names, permission)
+
+ # make note of the library in a global registry
+ library_info[name] = LibraryInfo()
+ library_info[name].required.extend(require)
+
+ def directory(self, _context, source, include=()):
+ if not os.path.isdir(source):
+ raise ConfigurationError("Directory %r does not exist" % source)
+
+ for file_name in include:
+ ext = os.path.splitext(file_name)[1]
+ if ext not in INCLUDABLE_EXTENTIONS:
+ raise ConfigurationError(
+ 'Resource library doesn\'t know how to include this '
+ 'file: "%s".' % file_name)
+
+ # remember which files should be included in the HTML when this library
+ # is referenced
+ library_info[self.name].included.extend(include)
+
+ factory = directoryresource.DirectoryResourceFactory(
+ source, self.checker, self.name)
+
+ _context.action(
+ discriminator = ('resource', self.name, IBrowserRequest, self.layer),
+ callable = handler,
+ args = (self.name, library_info[self.name].required, (self.layer,),
+ Interface, self.name, factory, _context.info),
+ )
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc/resourcelibrary/zcml.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/PKG-INFO
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/PKG-INFO (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/PKG-INFO 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,14 @@
+Metadata-Version: 1.0
+Name: zc.resourcelibrary
+Version: 0.5.2
+Summary: The resource library is a Zope 3 extension that is designed to make the
+inclusion of JavaScript, CSS, and other resources easy, cache-friendly,
+and component-friendly.
+
+Home-page: UNKNOWN
+Author: Zope Project
+Author-email: zope3-dev at zope.org
+License: ZPL
+Description: UNKNOWN
+Keywords: zope zope3
+Platform: UNKNOWN
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/SOURCES.txt
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/SOURCES.txt (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/SOURCES.txt 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1,32 @@
+Makefile
+ZopePublicLicense.txt
+setup.py
+src/zc/__init__.py
+src/zc.resourcelibrary.egg-info/PKG-INFO
+src/zc.resourcelibrary.egg-info/SOURCES.txt
+src/zc.resourcelibrary.egg-info/namespace_packages.txt
+src/zc.resourcelibrary.egg-info/not-zip-safe
+src/zc.resourcelibrary.egg-info/top_level.txt
+src/zc/resourcelibrary/README.txt
+src/zc/resourcelibrary/SETUP.cfg
+src/zc/resourcelibrary/__init__.py
+src/zc/resourcelibrary/configure.zcml
+src/zc/resourcelibrary/meta.zcml
+src/zc/resourcelibrary/publication.py
+src/zc/resourcelibrary/resourcelibrary.py
+src/zc/resourcelibrary/tal.py
+src/zc/resourcelibrary/zc.resourcelibrary-configure.zcml
+src/zc/resourcelibrary/zc.resourcelibrary-ftesting.zcml
+src/zc/resourcelibrary/zc.resourcelibrary-meta.zcml
+src/zc/resourcelibrary/zcml.py
+src/zc/resourcelibrary/ftests/__init__.py
+src/zc/resourcelibrary/ftests/configure.zcml
+src/zc/resourcelibrary/ftests/test_doc.py
+src/zc/resourcelibrary/ftests/test_template_1.pt
+src/zc/resourcelibrary/ftests/test_template_2.pt
+src/zc/resourcelibrary/ftests/test_template_3.pt
+src/zc/resourcelibrary/ftests/test_template_4.pt
+src/zc/resourcelibrary/ftests/example/1.js
+src/zc/resourcelibrary/ftests/example/2.css
+src/zc/resourcelibrary/ftests/example/my-lib/included.css
+src/zc/resourcelibrary/ftests/example/my-lib/included.js
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/SOURCES.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/namespace_packages.txt
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/namespace_packages.txt (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/namespace_packages.txt 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1 @@
+zc
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/namespace_packages.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/not-zip-safe
===================================================================
Added: python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/top_level.txt
===================================================================
--- python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/top_level.txt (rev 0)
+++ python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/top_level.txt 2006-10-25 09:37:50 UTC (rev 339)
@@ -0,0 +1 @@
+zc
Property changes on: python-zc.resourcelibrary/branches/upstream/current/src/zc.resourcelibrary.egg-info/top_level.txt
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the pkg-zope-commits
mailing list