Institute for
HSR

Ruby Refactoring

Team:

 

Ausgangslage:

Ruby ist eine dynamisch typisierte, objektorientierte Programmiersprache, welche in den letzten Jahren, vor allem durch das Web-Framework Rails, einen enormen Aufschwung erlebte. Die Unterstützung des Entwicklers durch eine leistungsfähige integrierte Entwicklungsumgebung steckt aber noch in den Kinderschuhen. So gibt es diverse Editoren, welche meistens aber kaum mehr als Syntax-Highlighting, Code-Outline und eine rudimentäre Projektverwaltung bereitstellen - von automatisierten Refactorings ganz zu schweigen. Auf Basis der Eclipse-Plattform bauen die Ruby Development Tools auf, eine relativ weit entwickelte Ruby Entwicklungsumgebung, die zudem die Grundlage für das Rails-Plug-in RadRails ist.

Ziele:

Das Ziel des Ruby Refactoring Projekts ist es, die Ruby Entwicklungsumgebung RDT um einen möglichst umfangreichen Refactoring Support zu erweitern.

Ergebnisse:

Während der sehr erfolgreichen Projektarbeit wurden folgende Refactorings implementiert:

 

  • Convert Local Variable to Field
  • Encapsulate Field
  • Extract Method
  • Move Method
  • Move Field
  • Split Temporary Variable
  • Inline Method
  • Inline Class

 

 

  • Inline Temp
  • Merge Class Parts
  • Rename Class
  • Rename Field
  • Rename File
  • Rename Local Variable
  • Rename Method
  • Rename Module

 

Feedback:

Daniel Spiewak von EclipseZone wrote:

First class Ruby refactoring is probably the most vaunted feature in RDT 0.9 and I must admit, it's very impressive. In this area, DLTK simply can't compare (it doesn't have any refactoring support yet). I was able to rename classes, methods, variables, mark occurrences (not really a refactoring, but it requires the same AST), and even wrap a code block in a method (I thought that one was pretty cool). There are even more refactorings, but you get the picture.

Links:

Screencasts

Dokumentation

Download und Installation

Unser Refactoring Plug-in ist ins RDT integriert. Um sie zu bekommen kann man einfach RDT/RadRails von Aptana herunterladen.