In Progress
- Parse a .rb file and display the syntax tree
- * Pick up the filename from the command line
Done
Code to parse a method definition (needs arguments, including *foo and &foo; yield)
To Do
Near-term tasks
- Code to parse a class
- Code to parse a method call (including passing blocks)
- Code to rename a method call (just one place, not finding all occurrences)
UI Stories
- Script-driven refactorings
- Interface to Emacs
- Interface to Eclipse
Interface to NetBeans
- Scan a directory heirarchy and display it
- Nested refactorings
- That is, start a new refactoring while in the middle of one
Refactorings
- Rename instance variable
- Rename method
- Rename class
- Convert instance variable to method
- Convert method to instance variable
- Extract method
- Inline method
- Extract variable
- Rename class
- Extract class
- Inline class
- Move instance variable between classes
- Move method between classes
- Extract constant
- Add method parameter
- Remove method parameter
- Reorder method parameters
- Change local variable to instance
- Extract superclass
- Extract interface
- Push method down
- Push instance variable down
- Pull method up
- Pull instance variable up
- Introduce factory
- Comment chunk
- Uncomment chunk
- Decompose conditional
- Three extract methods; test, if condition, and else condition
- Invert conditional
- Replace method with method object
Misc
- Find all references to a method
- Include symbols
- Include strings
- Find all references to an instance variable
- Include symbols
- Include strings
Notes
- Freshly generated methods should throw an exception