Refactoring Browser - new release, new home and other news.

danielv at netvision.net.il danielv at netvision.net.il
Sun Oct 6 18:05:42 UTC 2002


Avi Bryant <avi at beta4.com> wrote:
> On Sun, 6 Oct 2002 danielv at netvision.net.il wrote:

> > One thing that saved me a lot of time was that I used the information of
> > the change sets to recategorize the methods automatically. That way
> > there are no mistakes, nothing gets forgotten. Now I can refactor those
> > into correctness later.
> 
> Can you elaborate?  I'm not sure what you mean here.

What I did is automatically reclassify each method on a class outside
the RB categories under an appropriate class extension method category. 

This means that I can keep track of all the class extensions the RB does
to system classes, and file them out under the same module. Code is
appended to this mail.

> Yes, s/Module/Package/g in the DVS source would probably be a good idea.
> Do you think it's important to put up (Module|Package)Filer on SqueakMap
> by itself, or would it be ok just as part of DVS?  
Well, right now I know how to integrate the Filer, and don't know how to
integrate the DVS portion. It would be more elegant to let people load
the minimal model that a GUI requires to work, but probably not
critical.

IMHO, now that we can publish packages, and load them pretty easily, we
should help people understand and reuse our packages.

Making them minimal sounds to like it'll help that process, and so a
good way to go. The RefactoringBrowser is a big counter example - I
intend to fix that...

> Are you still building
> on top of the older, standalone ModuleFiler class?  
What I did before is not an issue, I will only release based on your new
code, I like it alot, and it's pretty compatible.

> Personally, I think
> the fileIn code in DVS is just as generally useful as the fileOut code...
Prove it :-) - write the tutorial on how to use it for team development.
Once I understand how it can help me, if I decide I need it, I might
just write the GUI integration code...

Daniel Vainsencher
Appendix:
changeSets _ (ChangeSorter allChangeSets select: [:e | 'RB*' match: e
name]) 

changeSetsAndMethodsChanged _ changeSets collect: [:e | e-> e
changedMessageList]

changeSetsAndOutsideMethodsChanged _ changeSetsAndMethodsChanged 
 collect: [:assoc | 
  assoc key -> (assoc value reject: [:methRef | 
   'Refactory*' match: (SystemOrganization categoryOfElement: methRef
actualClass theNonMetaClass name)])]
 
changeSetsAndOutsideMethodsChanged do: [:assoc | 
 cs _ assoc key.
 extensionCategory _ '*Refactory-',cs name.
 assoc value do: [:methodReference | 
  class _ methodReference actualClass.
  selector _ methodReference methodSymbol.
  class organization classify: selector under:  extensionCategory]]



More information about the Squeak-dev mailing list