Author: jvloothuis
Date: Fri May  2 17:13:30 2008
New Revision: 54330

Added:
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/core.py
      - copied, changed from r52364, 
kukit/kss.base/trunk/src/kss/base/corecommands.py
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/core.txt
      - copied, changed from r52364, 
kukit/kss.base/trunk/src/kss/base/corecommands.txt
Removed:
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/corecommands.py
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/corecommands.txt
Modified:
   kukit/kss.base/tags/grokkerdam-api-tweaks/docs/HISTORY.txt
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/__init__.py
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/commands.py
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/commands.txt
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/config.py
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/plugin.py
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/plugin.txt
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/registry.py
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/selectors.py
   kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/tests.py
Log:

Based on the discussions we (Godefroid, Martijn Faassen and I) had at
the Grokkerdam sprint I changed the concept of command sets from
classes to modules.


Modified: kukit/kss.base/tags/grokkerdam-api-tweaks/docs/HISTORY.txt
==============================================================================
--- kukit/kss.base/tags/grokkerdam-api-tweaks/docs/HISTORY.txt  (original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/docs/HISTORY.txt  Fri May  2 
17:13:30 2008
@@ -4,6 +4,15 @@
 
 kss.base - 0.4dev Unreleased
 
+    - changed the concept of command sets from classes to
+      modules. This means you now need to import the helpers
+      directly. For the core this would mean doing something like
+      this::
+
+         from kss.base import core, KSSCommands
+         commands = KSSCommands()
+         core.replaceInnerHTML(commands, '#some-node', 'some value')
+
     - renamed `load_plugins`, `unload_plugins`, and `activated_plugins`
     to respectively `activate`, `deactivate`, and `active_plugins`
     [gotcha]

Modified: kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/__init__.py
==============================================================================
--- kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/__init__.py  
(original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/__init__.py  Fri May 
 2 17:13:30 2008
@@ -1,4 +1,3 @@
 from kss.base.commands import KSSCommands
-from kss.base.selectors import selectors
 from kss.base.plugin import activate
 from kss.base.commands import xmldata, htmldata, cdatadata

Modified: kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/commands.py
==============================================================================
--- kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/commands.py  
(original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/commands.py  Fri May 
 2 17:13:30 2008
@@ -6,7 +6,6 @@
 except ImportError: # no soup support
     BeautifulSoup = BeautifulStoneSoup = lambda v: v
 
-from kss.base.registry import command_set_registry
 from kss.base.selectors import Selector
 
 soup_enabled = False
@@ -122,9 +121,3 @@
             lines.append(line + ')')
         return '\n'.join(lines)
 
-    def __getattr__(self, name):
-        return command_set_registry.get(name)(self)
-
-class KSSCommandSet(object):
-    def __init__(self, commands):
-        self.commands = commands

Modified: kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/commands.txt
==============================================================================
--- kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/commands.txt 
(original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/commands.txt Fri May 
 2 17:13:30 2008
@@ -172,61 +172,6 @@
   replaceHTML('#someid', html='some value')
 
 
-Command sets
-============
-
-Command sets wrap the commands system and provide a highlevel API to
-communicate with the browser. Command sets are responsible for escaping and
-validating data. 
-
-Let us take a look at the base class for all commandsets.
-
-  >>> from kss.base.commands import KSSCommandSet
-  >>> commands = KSSCommands()
-  >>> commandset = KSSCommandSet(commands)
-
-It wraps commands in the command set. We can still access the
-commands directly by using the `commands` attribute.
-
-  >>> commandset.commands
-  <...KSSCommands object at ...>
-
-Take a look at the core command set for a better understanding of the usage 
pattern.
-
-
-Using command sets
-==================
-
-In the previous examples, we saw how to load command sets directly. Usually, we
-do not need to do this. This is because the command renderer can also look
-them up by name. This is done by using the KSS plugin registry.
-
-We will now demonstrate this in the next example. First we need to load the
-registry.
-
-  >>> from kss.base.corecommands import KSSCoreCommands
-  >>> from kss.base.registry import command_set_registry
-
-Now we can register our command set. (For more information about the registry
-look at the documentation of kss.pluginregistry.)
-
-  >>> command_set_registry.register('core', KSSCoreCommands)
-
-Command sets are accessed as attributes on the command renderer.
-
-  >>> commands = KSSCommands()
-  >>> commands.core.replaceInnerHTML(css('div'), 'example')
-  >>> print commands
-  replaceInnerHTML(css('div'), html=htmldata('example'))
-
-In this case, we used `replaceInnerHTML` method that is defined in the core
-command set. This is equivalent but shorter than explicitely adding a command.
- 
-Let us clean up.
-
-  >>> command_set_registry.unregister('core')
-
-
 Soup support
 ============
 

Modified: kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/config.py
==============================================================================
--- kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/config.py    
(original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/config.py    Fri May 
 2 17:13:30 2008
@@ -1,7 +1,7 @@
 import os
 
 from kss.base.plugin import Plugin
-from kss.base.corecommands import KSSCoreCommands
+from kss.base import core
 from kss.base.selectors import css, htmlid, samenode, parentnode
 
 kukit_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'kukit')
@@ -43,7 +43,7 @@
                          for f in third_party_js]
                                            
     commandsets = {
-        'core': KSSCoreCommands,
+        'core': core,
         }
 
     selectors = {None: [css, htmlid, samenode, parentnode]}

Copied: kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/core.py (from 
r52364, kukit/kss.base/trunk/src/kss/base/corecommands.py)
==============================================================================
--- kukit/kss.base/trunk/src/kss/base/corecommands.py   (original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/core.py      Fri May 
 2 17:13:30 2008
@@ -1,91 +1,85 @@
-from kss.base.commands import KSSCommandSet
 from kss.base import htmldata
 
-class KSSCoreCommands(KSSCommandSet):
+def setAttribute(commands, selector, name, value):
+    commands.add('setAttribute', selector, name=name, value=value)
 
-    def setAttribute(self, selector, name, value):
-        self.commands.add('setAttribute', selector, name=name, value=value)
+def setStyle(commands, selector, name, value):
+    if ' ' in name:
+        raise ValueError('Style properties cannot contain spaces')
+    commands.add('setStyle', selector, name=name, value=value)
 
-    def setStyle(self, selector, name, value):
-        if ' ' in name:
-            raise ValueError('Style properties cannot contain spaces')
-        self.commands.add('setStyle', selector, name=name, value=value)
+def addClass(commands, selector, value):
+    commands.add('addClass', selector, value=value)
 
-    def addClass(self, selector, value):
-        self.commands.add('addClass', selector, value=value)
+def removeClass(commands, selector, value):
+    commands.add('removeClass', selector, value=value)
 
-    def removeClass(self, selector, value):
-        self.commands.add('removeClass', selector, value=value)
+def toggleClass(commands, selector, value):
+    commands.add('toggleClass', selector, value=value)
 
-    def toggleClass(self, selector, value):
-        self.commands.add('toggleClass', selector, value=value)
+def focus(commands, selector):
+    commands.add('focus', selector)
 
-    def focus(self, selector):
-        self.commands.add('focus', selector)
+def replaceInnerHTML(commands, selector, value, withKssSetup=True):
+    """Replace the contents of a node (selector) with the new `value`"""
+    extra_args = {}
+    if not withKssSetup:
+        extra_args['withKssSetup'] = 'False'
+    commands.add('replaceInnerHTML', selector, html=htmldata(value), 
+                 **extra_args)
 
-    def replaceInnerHTML(self, selector, value, withKssSetup=True):
-        """Replace the contents of a node (selector) with the new `value`"""
-        extra_args = {}
-        if not withKssSetup:
-            extra_args['withKssSetup'] = 'False'
-        self.commands.add('replaceInnerHTML', selector, html=htmldata(value), 
-                          **extra_args)
+def replaceHTML(commands, selector, value, withKssSetup=True):
+    extra_args = {}
+    if not withKssSetup:
+        extra_args['withKssSetup'] = 'False'
+    commands.add('replaceHTML', selector, html=value, **extra_args)
 
-    def replaceHTML(self, selector, value, withKssSetup=True):
-        extra_args = {}
-        if not withKssSetup:
-            extra_args['withKssSetup'] = 'False'
-        self.commands.add('replaceHTML', selector, html=value,
-                          **extra_args)
+def insertHTMLBefore(commands, selector, value):
+    commands.add('insertHTMLBefore', selector, html=value)
 
-    def insertHTMLBefore(self, selector, value):
-        self.commands.add('insertHTMLBefore', selector, html=value)
+def insertHTMLAfter(commands, selector, value):
+    commands.add('insertHTMLAfter', selector, html=value)
 
-    def insertHTMLAfter(self, selector, value):
-        self.commands.add('insertHTMLAfter', selector, html=value)
+def insertHTMLAsFirstChild(commands, selector, value):
+    commands.add('insertHTMLAsFirstChild', selector, html=value)
 
-    def insertHTMLAsFirstChild(self, selector, value):
-        self.commands.add('insertHTMLAsFirstChild', selector, html=value)
+def insertHTMLAsLastChild(commands, selector, value):
+    commands.add('insertHTMLAsLastChild', selector, html=value)
 
-    def insertHTMLAsLastChild(self, selector, value):
-        self.commands.add('insertHTMLAsLastChild', selector, html=value)
 
 
+def deleteNode(commands, selector):
+    commands.add('deleteNode', selector)
 
-    def deleteNode(self, selector):
-        self.commands.add('deleteNode', selector)
+def deleteNodeBefore(commands, selector):
+    commands.add('deleteNodeBefore', selector)
 
-    def deleteNodeBefore(self, selector):
-        self.commands.add('deleteNodeBefore', selector)
+def deleteNodeAfter(commands, selector):
+    commands.add('deleteNodeAfter', selector)
 
-    def deleteNodeAfter(self, selector):
-        self.commands.add('deleteNodeAfter', selector)
-
-    def clearChildNodes(self, selector):
-        self.commands.add('clearChildNodes', selector)
+def clearChildNodes(commands, selector):
+    commands.add('clearChildNodes', selector)
     
     
 
-    def copyChildNodesFrom(self, selector, id):
-        self.commands.add('copyChildNodesFrom', selector, html_id=id)
-
-    def copyChildNodesTo(self, selector, id):
-        self.commands.add('copyChildNodesTo', selector, html_id=id)
-
+def copyChildNodesFrom(commands, selector, id):
+    commands.add('copyChildNodesFrom', selector, html_id=id)
 
+def copyChildNodesTo(commands, selector, id):
+    commands.add('copyChildNodesTo', selector, html_id=id)
 
-    def moveNodeBefore(self, selector, id):
-        self.commands.add('moveNodeBefore', selector, html_id=id)
 
-    def moveNodeAfter(self, selector, id):
-        self.commands.add('moveNodeAfter', selector, html_id=id)
 
+def moveNodeBefore(commands, selector, id):
+    commands.add('moveNodeBefore', selector, html_id=id)
 
-    def setStateVar(self, varname, value):
-        self.commands.add('setStateVar', None, varname=varname, value=value)
+def moveNodeAfter(commands, selector, id):
+    commands.add('moveNodeAfter', selector, html_id=id)
 
-    def triggerEvent(self, name, **kwargs):
-        self.commands.add('triggerEvent', None, name=name, **kwargs)
 
+def setStateVar(commands, varname, value):
+    commands.add('setStateVar', None, varname=varname, value=value)
 
+def triggerEvent(commands, name, **kwargs):
+    commands.add('triggerEvent', None, name=name, **kwargs)
 

Copied: kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/core.txt (from 
r52364, kukit/kss.base/trunk/src/kss/base/corecommands.txt)
==============================================================================
--- kukit/kss.base/trunk/src/kss/base/corecommands.txt  (original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/core.txt     Fri May 
 2 17:13:30 2008
@@ -2,22 +2,21 @@
 Core commands
 =============
 
-The core commands wrap all KSS commands provided by the core plugin. 
-They are always available.
-These do not contain any effects and focus mostly on DOM manipulation.
+The core commands wrap all KSS commands provided by the core plugin.
+They are always available. These do not contain any effects and focus
+mostly on DOM manipulation.
 
-First we instantiate the command set.
+First we instantiate the commands object.
 
-  >>> from kss.base.corecommands import KSSCoreCommands
+  >>> from kss.base import core
   >>> from kss.base import KSSCommands
   >>> from kss.base.selectors import css
 
   >>> commands = KSSCommands()
-  >>> core = KSSCoreCommands(commands)
 
 Let us look at the individual methods provided by the core commands.
 
-  >>> core.replaceInnerHTML(css('div'), 'some &lt;h1&gt;html&lt;/h1&gt;')
+  >>> core.replaceInnerHTML(commands, css('div'), 'some 
&lt;h1&gt;html&lt;/h1&gt;')
   >>> commands.render()
   '...replaceInnerHTML...<![CDATA[some &lt;h1&gt;html&lt;/h1&gt;]]>...'
 
@@ -29,7 +28,7 @@
 -------------
 
   >>> commands.clear()
-  >>> core.setAttribute(css('div'), 'some name', 'some value')
+  >>> core.setAttribute(commands, css('div'), 'some name', 'some value')
   >>> print commands
   setAttribute(css('div'), name='some name', value='some value')
 
@@ -39,14 +38,14 @@
 You can use `setStyle` to change the look off an element.
 
   >>> commands.clear()
-  >>> core.setStyle(css('div'), 'somename', 'some value')
+  >>> core.setStyle(commands, css('div'), 'somename', 'some value')
   >>> print commands
   setStyle(css('div'), name='somename', value='some value')
 
 It also has some validation so that you do not accidentily do an
 unallowed thing.
 
-  >>> core.setStyle(css('div'), 'some name', 'some value')
+  >>> core.setStyle(commands, css('div'), 'some name', 'some value')
   Traceback (most recent call last):
   ...
   ValueError: Style properties cannot contain spaces
@@ -56,7 +55,7 @@
 ---------
 
   >>> commands.clear()
-  >>> core.addClass(css('div'), 'somename')
+  >>> core.addClass(commands, css('div'), 'somename')
   >>> print commands
   addClass(css('div'), value='somename')
 
@@ -65,7 +64,7 @@
 ------------
 
   >>> commands.clear()
-  >>> core.removeClass(css('div'), 'somename')
+  >>> core.removeClass(commands, css('div'), 'somename')
   >>> print commands
   removeClass(css('div'), value='somename')
 
@@ -73,7 +72,7 @@
 ------------
 
   >>> commands.clear()
-  >>> core.toggleClass(css('div'), 'somename')
+  >>> core.toggleClass(commands, css('div'), 'somename')
   >>> print commands
   toggleClass(css('div'), value='somename')
 
@@ -86,14 +85,14 @@
 ------------------
 
   >>> commands.clear()
-  >>> core.replaceInnerHTML(css('div'), 'some html')
+  >>> core.replaceInnerHTML(commands, css('div'), 'some html')
   >>> print commands
   replaceInnerHTML(css('div'), html=htmldata('some html'))
 
 You can also avoid KSS event setup. Use this only if you really need
 the speedup, as the KSS resource will not be bound to those new nodes.
 
-  >>> core.replaceInnerHTML(css('div'), 'some html', withKssSetup=False)
+  >>> core.replaceInnerHTML(commands, css('div'), 'some html', 
withKssSetup=False)
   >>> print commands
   replaceInnerHTML(css('div'), html=htmldata('some html'))
   replaceInnerHTML(css('div'), html=htmldata('some html'), 
withKssSetup='False')
@@ -103,13 +102,13 @@
 ------------
 
   >>> commands.clear()
-  >>> core.replaceHTML(css('div'), 'some html')
+  >>> core.replaceHTML(commands, css('div'), 'some html')
   >>> print commands
   replaceHTML(css('div'), html='some html')
 
 You can also pass withKssSetup here (see replace inner HTML).
 
-  >>> core.replaceHTML(css('div'), 'some html', withKssSetup=False)
+  >>> core.replaceHTML(commands, css('div'), 'some html', withKssSetup=False)
   >>> print commands
   replaceHTML(css('div'), html='some html')
   replaceHTML(css('div'), html='some html', withKssSetup='False')
@@ -123,7 +122,7 @@
 ------------------
 
   >>> commands.clear()
-  >>> core.insertHTMLBefore(css('div'), 'some html')
+  >>> core.insertHTMLBefore(commands, css('div'), 'some html')
   >>> print commands
   insertHTMLBefore(css('div'), html='some html')
 
@@ -131,7 +130,7 @@
 -----------------
 
   >>> commands.clear()
-  >>> core.insertHTMLAfter(css('div'), 'some html')
+  >>> core.insertHTMLAfter(commands, css('div'), 'some html')
   >>> print commands
   insertHTMLAfter(css('div'), html='some html')
 
@@ -139,7 +138,7 @@
 --------------------------
 
   >>> commands.clear()
-  >>> core.insertHTMLAsFirstChild(css('div'), 'some html')
+  >>> core.insertHTMLAsFirstChild(commands, css('div'), 'some html')
   >>> print commands
   insertHTMLAsFirstChild(css('div'), html='some html')
 
@@ -147,7 +146,7 @@
 --------------------------
 
   >>> commands.clear()
-  >>> core.insertHTMLAsLastChild(css('div'), 'some html')
+  >>> core.insertHTMLAsLastChild(commands, css('div'), 'some html')
   >>> print commands
   insertHTMLAsLastChild(css('div'), html='some html')
 
@@ -160,7 +159,7 @@
 -----------
 
   >>> commands.clear()
-  >>> core.deleteNode(css('div'))
+  >>> core.deleteNode(commands, css('div'))
   >>> print commands
   deleteNode(css('div'))
 
@@ -168,7 +167,7 @@
 ------------------
 
   >>> commands.clear()
-  >>> core.deleteNodeBefore(css('div'))
+  >>> core.deleteNodeBefore(commands, css('div'))
   >>> print commands
   deleteNodeBefore(css('div'))
 
@@ -176,7 +175,7 @@
 -----------------
 
   >>> commands.clear()
-  >>> core.deleteNodeAfter(css('div'))
+  >>> core.deleteNodeAfter(commands, css('div'))
   >>> print commands
   deleteNodeAfter(css('div'))
 
@@ -184,7 +183,7 @@
 -----------------
 
   >>> commands.clear()
-  >>> core.clearChildNodes(css('div'))
+  >>> core.clearChildNodes(commands, css('div'))
   >>> print commands
   clearChildNodes(css('div'))
 
@@ -196,7 +195,7 @@
 -----
 
   >>> commands.clear()
-  >>> core.focus(css('div'))
+  >>> core.focus(commands, css('div'))
   >>> print commands
   focus(css('div'))
 
@@ -209,7 +208,7 @@
 ----------------------
 
   >>> commands.clear()
-  >>> core.copyChildNodesFrom(css('div'), 'nodeid')
+  >>> core.copyChildNodesFrom(commands, css('div'), 'nodeid')
   >>> print commands
   copyChildNodesFrom(css('div'), html_id='nodeid')
 
@@ -218,7 +217,7 @@
 -------------------
 
   >>> commands.clear()
-  >>> core.copyChildNodesTo(css('div'), 'nodeid')
+  >>> core.copyChildNodesTo(commands, css('div'), 'nodeid')
   >>> print commands
   copyChildNodesTo(css('div'), html_id='nodeid')
 
@@ -231,7 +230,7 @@
 ----------------
 
   >>> commands.clear()
-  >>> core.moveNodeBefore(css('div'), 'nodeid')
+  >>> core.moveNodeBefore(commands, css('div'), 'nodeid')
   >>> print commands
   moveNodeBefore(css('div'), html_id='nodeid')
 
@@ -239,7 +238,7 @@
 ---------------
 
   >>> commands.clear()
-  >>> core.moveNodeAfter(css('div'), 'nodeid')
+  >>> core.moveNodeAfter(commands, css('div'), 'nodeid')
   >>> print commands
   moveNodeAfter(css('div'), html_id='nodeid')
 
@@ -252,7 +251,7 @@
 -------------------
 
   >>> commands.clear()
-  >>> core.setStateVar('varname', 'value')
+  >>> core.setStateVar(commands, 'varname', 'value')
   >>> print commands
   setStateVar(varname='varname', value='value')
 
@@ -260,6 +259,6 @@
 -------------
 
   >>> commands.clear()
-  >>> core.triggerEvent('eventname')
+  >>> core.triggerEvent(commands, 'eventname')
   >>> print commands
   triggerEvent(name='eventname')

Deleted: /kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/corecommands.py
==============================================================================
--- /kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/corecommands.py     
Fri May  2 17:13:30 2008
+++ (empty file)
@@ -1,91 +0,0 @@
-from kss.base.commands import KSSCommandSet
-from kss.base import htmldata
-
-class KSSCoreCommands(KSSCommandSet):
-
-    def setAttribute(self, selector, name, value):
-        self.commands.add('setAttribute', selector, name=name, value=value)
-
-    def setStyle(self, selector, name, value):
-        if ' ' in name:
-            raise ValueError('Style properties cannot contain spaces')
-        self.commands.add('setStyle', selector, name=name, value=value)
-
-    def addClass(self, selector, value):
-        self.commands.add('addClass', selector, value=value)
-
-    def removeClass(self, selector, value):
-        self.commands.add('removeClass', selector, value=value)
-
-    def toggleClass(self, selector, value):
-        self.commands.add('toggleClass', selector, value=value)
-
-    def focus(self, selector):
-        self.commands.add('focus', selector)
-
-    def replaceInnerHTML(self, selector, value, withKssSetup=True):
-        """Replace the contents of a node (selector) with the new `value`"""
-        extra_args = {}
-        if not withKssSetup:
-            extra_args['withKssSetup'] = 'False'
-        self.commands.add('replaceInnerHTML', selector, html=htmldata(value), 
-                          **extra_args)
-
-    def replaceHTML(self, selector, value, withKssSetup=True):
-        extra_args = {}
-        if not withKssSetup:
-            extra_args['withKssSetup'] = 'False'
-        self.commands.add('replaceHTML', selector, html=value,
-                          **extra_args)
-
-    def insertHTMLBefore(self, selector, value):
-        self.commands.add('insertHTMLBefore', selector, html=value)
-
-    def insertHTMLAfter(self, selector, value):
-        self.commands.add('insertHTMLAfter', selector, html=value)
-
-    def insertHTMLAsFirstChild(self, selector, value):
-        self.commands.add('insertHTMLAsFirstChild', selector, html=value)
-
-    def insertHTMLAsLastChild(self, selector, value):
-        self.commands.add('insertHTMLAsLastChild', selector, html=value)
-
-
-
-    def deleteNode(self, selector):
-        self.commands.add('deleteNode', selector)
-
-    def deleteNodeBefore(self, selector):
-        self.commands.add('deleteNodeBefore', selector)
-
-    def deleteNodeAfter(self, selector):
-        self.commands.add('deleteNodeAfter', selector)
-
-    def clearChildNodes(self, selector):
-        self.commands.add('clearChildNodes', selector)
-    
-    
-
-    def copyChildNodesFrom(self, selector, id):
-        self.commands.add('copyChildNodesFrom', selector, html_id=id)
-
-    def copyChildNodesTo(self, selector, id):
-        self.commands.add('copyChildNodesTo', selector, html_id=id)
-
-
-
-    def moveNodeBefore(self, selector, id):
-        self.commands.add('moveNodeBefore', selector, html_id=id)
-
-    def moveNodeAfter(self, selector, id):
-        self.commands.add('moveNodeAfter', selector, html_id=id)
-
-
-    def setStateVar(self, varname, value):
-        self.commands.add('setStateVar', None, varname=varname, value=value)
-
-    def triggerEvent(self, name, **kwargs):
-        self.commands.add('triggerEvent', None, name=name, **kwargs)
-
-
-

Deleted: 
/kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/corecommands.txt
==============================================================================
--- /kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/corecommands.txt    
Fri May  2 17:13:30 2008
+++ (empty file)
@@ -1,265 +0,0 @@
-=============
-Core commands
-=============
-
-The core commands wrap all KSS commands provided by the core plugin. 
-They are always available.
-These do not contain any effects and focus mostly on DOM manipulation.
-
-First we instantiate the command set.
-
-  >>> from kss.base.corecommands import KSSCoreCommands
-  >>> from kss.base import KSSCommands
-  >>> from kss.base.selectors import css
-
-  >>> commands = KSSCommands()
-  >>> core = KSSCoreCommands(commands)
-
-Let us look at the individual methods provided by the core commands.
-
-  >>> core.replaceInnerHTML(css('div'), 'some &lt;h1&gt;html&lt;/h1&gt;')
-  >>> commands.render()
-  '...replaceInnerHTML...<![CDATA[some &lt;h1&gt;html&lt;/h1&gt;]]>...'
-
------------------
-Node modification
------------------
-
-Set attribute
--------------
-
-  >>> commands.clear()
-  >>> core.setAttribute(css('div'), 'some name', 'some value')
-  >>> print commands
-  setAttribute(css('div'), name='some name', value='some value')
-
-Set style
----------
-
-You can use `setStyle` to change the look off an element.
-
-  >>> commands.clear()
-  >>> core.setStyle(css('div'), 'somename', 'some value')
-  >>> print commands
-  setStyle(css('div'), name='somename', value='some value')
-
-It also has some validation so that you do not accidentily do an
-unallowed thing.
-
-  >>> core.setStyle(css('div'), 'some name', 'some value')
-  Traceback (most recent call last):
-  ...
-  ValueError: Style properties cannot contain spaces
-
-
-Add class
----------
-
-  >>> commands.clear()
-  >>> core.addClass(css('div'), 'somename')
-  >>> print commands
-  addClass(css('div'), value='somename')
-
-
-Remove class
-------------
-
-  >>> commands.clear()
-  >>> core.removeClass(css('div'), 'somename')
-  >>> print commands
-  removeClass(css('div'), value='somename')
-
-Toggle class
-------------
-
-  >>> commands.clear()
-  >>> core.toggleClass(css('div'), 'somename')
-  >>> print commands
-  toggleClass(css('div'), value='somename')
-
-
-----------------
-HTML replacement
-----------------
-
-Replace inner HTML
-------------------
-
-  >>> commands.clear()
-  >>> core.replaceInnerHTML(css('div'), 'some html')
-  >>> print commands
-  replaceInnerHTML(css('div'), html=htmldata('some html'))
-
-You can also avoid KSS event setup. Use this only if you really need
-the speedup, as the KSS resource will not be bound to those new nodes.
-
-  >>> core.replaceInnerHTML(css('div'), 'some html', withKssSetup=False)
-  >>> print commands
-  replaceInnerHTML(css('div'), html=htmldata('some html'))
-  replaceInnerHTML(css('div'), html=htmldata('some html'), 
withKssSetup='False')
-
-
-Replace HTML
-------------
-
-  >>> commands.clear()
-  >>> core.replaceHTML(css('div'), 'some html')
-  >>> print commands
-  replaceHTML(css('div'), html='some html')
-
-You can also pass withKssSetup here (see replace inner HTML).
-
-  >>> core.replaceHTML(css('div'), 'some html', withKssSetup=False)
-  >>> print commands
-  replaceHTML(css('div'), html='some html')
-  replaceHTML(css('div'), html='some html', withKssSetup='False')
-
-
---------------
-HTML insertion
---------------
-
-Insert HTML before
-------------------
-
-  >>> commands.clear()
-  >>> core.insertHTMLBefore(css('div'), 'some html')
-  >>> print commands
-  insertHTMLBefore(css('div'), html='some html')
-
-Insert HTML after
------------------
-
-  >>> commands.clear()
-  >>> core.insertHTMLAfter(css('div'), 'some html')
-  >>> print commands
-  insertHTMLAfter(css('div'), html='some html')
-
-Insert HTML as first child
---------------------------
-
-  >>> commands.clear()
-  >>> core.insertHTMLAsFirstChild(css('div'), 'some html')
-  >>> print commands
-  insertHTMLAsFirstChild(css('div'), html='some html')
-
-Insert HTML as last child
---------------------------
-
-  >>> commands.clear()
-  >>> core.insertHTMLAsLastChild(css('div'), 'some html')
-  >>> print commands
-  insertHTMLAsLastChild(css('div'), html='some html')
-
-
-------------
-Node removal
-------------
-
-Delete node
------------
-
-  >>> commands.clear()
-  >>> core.deleteNode(css('div'))
-  >>> print commands
-  deleteNode(css('div'))
-
-Delete node before
-------------------
-
-  >>> commands.clear()
-  >>> core.deleteNodeBefore(css('div'))
-  >>> print commands
-  deleteNodeBefore(css('div'))
-
-Delete node after
------------------
-
-  >>> commands.clear()
-  >>> core.deleteNodeAfter(css('div'))
-  >>> print commands
-  deleteNodeAfter(css('div'))
-
-Clear child nodes
------------------
-
-  >>> commands.clear()
-  >>> core.clearChildNodes(css('div'))
-  >>> print commands
-  clearChildNodes(css('div'))
-
--------
-Special
--------
-
-Focus
------
-
-  >>> commands.clear()
-  >>> core.focus(css('div'))
-  >>> print commands
-  focus(css('div'))
-
-
--------------
-Copying nodes
--------------
-
-Copy child nodes from
-----------------------
-
-  >>> commands.clear()
-  >>> core.copyChildNodesFrom(css('div'), 'nodeid')
-  >>> print commands
-  copyChildNodesFrom(css('div'), html_id='nodeid')
-
-
-Copy child nodes to
--------------------
-
-  >>> commands.clear()
-  >>> core.copyChildNodesTo(css('div'), 'nodeid')
-  >>> print commands
-  copyChildNodesTo(css('div'), html_id='nodeid')
-
-
-------------
-Moving nodes
-------------
-
-Move node before
-----------------
-
-  >>> commands.clear()
-  >>> core.moveNodeBefore(css('div'), 'nodeid')
-  >>> print commands
-  moveNodeBefore(css('div'), html_id='nodeid')
-
-Move node after
----------------
-
-  >>> commands.clear()
-  >>> core.moveNodeAfter(css('div'), 'nodeid')
-  >>> print commands
-  moveNodeAfter(css('div'), html_id='nodeid')
-
-
---------------
-Global actions
---------------
-
-Set client variable
--------------------
-
-  >>> commands.clear()
-  >>> core.setStateVar('varname', 'value')
-  >>> print commands
-  setStateVar(varname='varname', value='value')
-
-Trigger event
--------------
-
-  >>> commands.clear()
-  >>> core.triggerEvent('eventname')
-  >>> print commands
-  triggerEvent(name='eventname')

Modified: kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/plugin.py
==============================================================================
--- kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/plugin.py    
(original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/plugin.py    Fri May 
 2 17:13:30 2008
@@ -2,8 +2,7 @@
 
 from pkg_resources import iter_entry_points
 
-from kss.base.registry import command_set_registry, plugin_registry
-from kss.base import selectors as selector_registry
+from kss.base.registry import plugin_registry
 
 class Plugin(object):
     priority = 100
@@ -13,28 +12,6 @@
     selectors = {}
     commandsets = {}
 
-    def register_commandsets(self, registry):
-        for name, commandset in self.commandsets.iteritems():
-            registry.register(name, commandset)
-
-    def unregister_commandsets(self, registry):
-        for name, commandset in self.commandsets.iteritems():
-            registry.unregister(name)
-
-    def _selectors(self):
-        for name, selectors in self.selectors.iteritems():
-            for selector in selectors:
-                yield selector.type, selector
-
-    def register_selectors(self):
-        for id, selector in self._selectors():
-            selector_registry.register(id, selector)
-
-    def unregister_selectors(self):
-        for id, selector in self._selectors():
-            selector_registry.unregister(id)
-
-
 def javascripts_from(path):
     javascripts = []
     if not os.path.isdir(path):
@@ -70,9 +47,6 @@
 
             plugin = plugin_factory()
             plugin_registry.register(name, plugin)
-            # Setup of all hooks
-            plugin.register_commandsets(command_set_registry)
-            plugin.register_selectors()
             return
         raise KeyError("Plugin is not registered: %s" % name)
 
@@ -85,10 +59,6 @@
             plugin_factory = entry_point.load()
 
             plugin = plugin_factory()
-            # Tear down of all hooks
-            plugin.unregister_commandsets(command_set_registry)
-            plugin.unregister_selectors()
-
             plugin_registry.unregister(name)
     
 

Modified: kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/plugin.txt
==============================================================================
--- kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/plugin.txt   
(original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/plugin.txt   Fri May 
 2 17:13:30 2008
@@ -26,7 +26,7 @@
 example.)
 
   >>> import kss.base
-  >>> from kss.base.corecommands import KSSCoreCommands
+  >>> from kss.base import core
   >>> from kss.base.selectors import Selector
 
   >>> class Silly(Selector):
@@ -40,7 +40,7 @@
   ...                                      'javascript/plugin.js')]
   ...     extra_javascripts = []
   ...     commandsets = {
-  ...         'example': KSSCoreCommands,
+  ...         'example': core,
   ...         }
   ...     selectors = {'example': [Silly]}
 
@@ -87,14 +87,6 @@
   >>> tuple(active_plugins())
   (('kss-testing', <ExamplePlugin object at ...>),)
 
-The additional selector we registered is now available in the selector
-registry. It can be looked up based on the class name with the key
-from the registrion as the namespace.
-
-  >>> from kss.base import selectors
-  >>> print selectors['example-silly']('testing')
-  example-silly('testing')
-
 Finally we deactivate our plugin to clean up.
 
   >>> from kss.base.plugin import deactivate

Modified: kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/registry.py
==============================================================================
--- kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/registry.py  
(original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/registry.py  Fri May 
 2 17:13:30 2008
@@ -18,5 +18,4 @@
 
     __getitem__ = get
 
-command_set_registry = Registry()
 plugin_registry = Registry()

Modified: kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/selectors.py
==============================================================================
--- kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/selectors.py 
(original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/selectors.py Fri May 
 2 17:13:30 2008
@@ -1,5 +1,3 @@
-from kss.base.registry import Registry
-
 class Selector(object):
     """A base for selectors. Plugins that implement this, need
     to implement __init__ themselves, and set type as a string.
@@ -40,5 +38,3 @@
 
     def __init__(self, value):
         self.value = value
-
-selectors = Registry()

Modified: kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/tests.py
==============================================================================
--- kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/tests.py     
(original)
+++ kukit/kss.base/tags/grokkerdam-api-tweaks/src/kss/base/tests.py     Fri May 
 2 17:13:30 2008
@@ -6,7 +6,7 @@
         doctest.DocFileSuite(
             'selectors.txt',
             'registry.txt', 'plugin.txt',
-            'commands.txt', 'corecommands.txt',
+            'commands.txt', 'core.txt',
             'javascript.txt', 'utils.txt',
             package='kss.base',
             optionflags=doctest.ELLIPSIS|doctest.REPORT_ONLY_FIRST_FAILURE,
_______________________________________________
Kukit-checkins mailing list
[email protected]
http://codespeak.net/mailman/listinfo/kukit-checkins

Reply via email to