>> Note that the classes contain actually excellent documentation.
>>
> Do you have any particular one in mind?
You asked about the AST nodes.
> I traced OB's execution to
> RBStringReplaceRule and then looked up the hierarchy finding basic
> few-sentence descriptions, but nothing in-depth about how to search and
> replace.
That's a private internal class, you are not supposed to instantiate it. You find documentation about the rewrite engine in the first link I sent you.
>> Actually you can do it with a few clicks: Select #deprecated:, click
>> on "Refactor method > Add parameter" and follow the instructions.
>>
> Notice I asked about the API, not about the OB GUI.
I couldn't guess that.
> I needed to
> programmatically change each one depending on the sender's timeStamp and the
> collections of what was deprecated in which version. Also, there are already
> methods in the system with the name I'm changing to, so OB just mentions
> that and fails.
A few more clicks and you have a refactoring scope on any method set you want.
> Let me ask maybe a better question - how would you do the following
> programmatically?
I would crete a rewriter for each case, instantiate a RBNamespace, iterate over all methods within, and apply the rewriters if necessary, then review the changeset, and apply it.
Cheers,
Lukas
--
Lukas Renggli
www.lukas-renggli.ch