Anonymous avatar Anonymous committed 7204daa

methodobject: added method object refactoring

Comments (0)

Files changed (3)

  Done
 ======
 
+- added introduce method object refactoring : January 25, 2008
 - added use function refactoring : January 25, 2008
 
 > Public Release 0.5c2 : January 17, 2008

ropemacs/interface.py

                     name = self._refactoring_name(attr)
                     setattr(self, name, do_refactor)
                     name = 'rope-' + name.replace('_', '-')
-                    self.local_keys.append((attr.key, lisp[name]))
+                    if attr.key is not None:
+                        self.local_keys.append((attr.key, lisp[name]))
 
     def _refactoring_name(self, refactoring):
         return refactor.refactoring_name(refactoring)

ropemacs/refactor.py

 import rope.refactor.rename
 import rope.refactor.restructure
 import rope.refactor.usefunction
+import rope.refactor.method_object
 
 from ropemacs import dialog, lisputils
 
         self.interface._goto_location(self.generator.get_location())
 
 
+class MethodObject(Refactoring):
+    key = None
+    saveall = False
+    confs = {'classname': dialog.Data('New class name: ',
+                                      default='_ExtractedClass')}
+
+    def _create_refactoring(self):
+        self.objecter = rope.refactor.method_object.MethodObject(
+            self.project, self.resource, self.offset)
+
+    def _calculate_changes(self, values, task_handle):
+        classname = values.get('classname')
+        return self.objecter.get_changes(classname)
+
+
 class GenerateVariable(_GenerateElement):
     key = 'n v'
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.