From what I've guessed I need to create my own formatter (RubyFormatter) by basically rewriting all private-formating methods (am I right here ?).
You can't probably reuse anything. I would just subclass RBProgramNodeVisitor and implement all the #accept* methods. RBFormatter is just an example of how that can be done.
Then, I use the parser and the RubyFormatter. But what I want is export a package, ie. classes with their methods and extension methods. I can't parse directly a full class nor a package... can I directly ? I guess not
Yeah, that only converts a single method.
So I need to parse each class definition (and class class definition), format them, Â then parse/format each method source (probably better to get the code expressions from the MCWorkingCopy or PackageInfo I guess)...
RBParser parseExpression: MyClass definition.
That's not what you want. Ruby classes look very different to Smalltalk class definitions. I would do something like: env := BrowserEnvironment new forPackageNames: #('MyPackage'). env classesDo: [ :class | stream := FileStream on: class name , '.rb'. " write header of class definition for 'class' " env selectorsForClass: class do: [ :selector | tree := class parseTreeFor: selector. RubyFormatter format: tree on: stream ]. " write footer of class definition for 'class' " stream close ] Lukas -- Lukas Renggli http://www.lukas-renggli.ch