Hi Dale - thanks for chipping in. I���ve seen references to Rowan, but hadn���t investigated. Interesting. 

Were you thinking of a standard visitor pattern (Gof) or something else? And/Or, Is this visiting piece already done, or would it help if we had such a beast in Pharo that you could then reuse for your purpose?

As an aside, in a separate message, I was lamenting the complexity of managing 100 simple similar packages with the same dependency - would Rowan help with that?

Tim

Sent from my iPhone

On 20 May 2019, at 20:16, Dale Henrichs <dale.henrichs@gemtalksystems.com> wrote:

Tim,

I know that this doesn't answer your question, but one of the features that I'm building into Rowan is just this capability:

  • project definitions composed of package definitions
  • package definitions composed of class and class extension definitions
  • class and class extensions definitions composed of method definitions

... there are also definitions that cover what is now handled by Metacello: conditional packages, package grouping and project dependencies ...

I am intending/hoping that Rowan will eventually be available for Pharo:) ... I have to finish Rowan for GemStone first:)

Dale

On 5/19/19 10:23 AM, Tim Mackinnon wrote:
Hi - is there  a way to iterate over all the code in a package (or class or baseline) in a generic way (to pretty print out class definitions, and methods - including extensions ).

I was kind of hoping that with TonelWriter and Fileout and Critics that we would have a generic visitor mechanism but it seems that all of them just implemented it again - which misses a big opportunity for refactoring so that when you want to reason/print/manipulate code - it would be more straight forward.

Is there anything/anyone addressing this ? Or maybe I���ve missed an obvious trick somewhere? 

Tim

Sent from my iPhone