From 162dd1eb6f154cfb44ef395b018c053f679ede31 Mon Sep 17 00:00:00 2001
From: Alexander Cherniuk <ts33kr@gmail.com>
Date: Thu, 5 Aug 2010 15:45:10 +0300
Subject: [PATCH] Minor fixes for the command system dispatching

---
 src/command_system/dispatching.py | 54 +++++++++++++++----------------
 1 file changed, 27 insertions(+), 27 deletions(-)

diff --git a/src/command_system/dispatching.py b/src/command_system/dispatching.py
index 0c613ec152..d19581429c 100644
--- a/src/command_system/dispatching.py
+++ b/src/command_system/dispatching.py
@@ -28,63 +28,63 @@ class Dispatcher(type):
     commands = {}
 
     @classmethod
-    def register_host(klass, host):
-        klass.containers[host] = []
+    def register_host(cls, host):
+        cls.containers[host] = []
 
     @classmethod
-    def register_container(klass, container):
+    def register_container(cls, container):
         for host in container.HOSTS:
-            klass.containers[host].append(container)
+            cls.containers[host].append(container)
 
     @classmethod
-    def register_commands(klass, container):
-        klass.commands[container] = {}
-        for command in klass.traverse_commands(container):
+    def register_commands(cls, container):
+        cls.commands[container] = {}
+        for command in cls.traverse_commands(container):
             for name in command.names:
-                klass.commands[container][name] = command
+                cls.commands[container][name] = command
 
     @classmethod
-    def get_command(klass, host, name):
-        for container in klass.containers[host]:
-            command = klass.commands[container].get(name)
+    def get_command(cls, host, name):
+        for container in cls.containers[host]:
+            command = cls.commands[container].get(name)
             if command:
                 return command
 
     @classmethod
-    def list_commands(klass, host):
-        for container in klass.containers[host]:
-            commands = klass.commands[container]
+    def list_commands(cls, host):
+        for container in cls.containers[host]:
+            commands = cls.commands[container]
             for name, command in commands.iteritems():
                 yield name, command
 
     @classmethod
-    def traverse_commands(klass, container):
+    def traverse_commands(cls, container):
         for name in dir(container):
             attribute = getattr(container, name)
-            if klass.is_command(attribute):
+            if cls.is_command(attribute):
                 yield attribute
 
     @staticmethod
     def is_root(ns):
-        meta = ns.get('__metaclass__', NoneType)
-        return issubclass(meta, Dispatcher)
+        metaclass = ns.get('__metaclass__', NoneType)
+        return issubclass(metaclass, Dispatcher)
 
     @staticmethod
     def is_command(attribute):
-        name = attribute.__class__.__name__
-        return name == 'Command'
+        from framework import Command
+        return isinstance(attribute, Command)
 
 class HostDispatcher(Dispatcher):
 
-    def __init__(klass, name, bases, ns):
+    def __init__(self, name, bases, ns):
         if not Dispatcher.is_root(ns):
-            HostDispatcher.register_host(klass)
-        super(HostDispatcher, klass).__init__(name, bases, ns)
+            HostDispatcher.register_host(self)
+        super(HostDispatcher, self).__init__(name, bases, ns)
 
 class ContainerDispatcher(Dispatcher):
 
-    def __init__(klass, name, bases, ns):
+    def __init__(self, name, bases, ns):
         if not Dispatcher.is_root(ns):
-            ContainerDispatcher.register_container(klass)
-            ContainerDispatcher.register_commands(klass)
-        super(ContainerDispatcher, klass).__init__(name, bases, ns)
+            ContainerDispatcher.register_container(self)
+            ContainerDispatcher.register_commands(self)
+        super(ContainerDispatcher, self).__init__(name, bases, ns)
-- 
GitLab