From: "Victor \"Zverok\" Shepelev" Date: 2007-09-26T23:41:45+09:00 Subject: Re: Refactorings again: idea for library From: Trans [mailto:transfire@gmail.com] Sent: Wednesday, September 26, 2007 5:34 PM > > >On Sep 26, 6:42 am, "Victor \"Zverok\" Shepelev" > wrote: >> Hi all. >> >> Here's an idea stolen from [1] and [2]. >> >> Suppose we have a library. Suppose we've done some refactorings in it >> (method or class renamed, class splitted into several, or joined, or...) >> >> The task: change all client code in correspondence to library change. >> >> The trick: >> >> library/changelog.rb >> --- >> module MyLibrary::Changelog >> version(0.2.5) do >> method_renamed [SomeClass, :method_a] => :method_b >> method_removed [SomeClass, :old_method], "he was too old" >> module_method_moved [SomeModule, :method_c] => OtherModule >> class_renamed ClassA => ClassB >> end >> end >> --- >> >> >> Wha? > >It a very interesting idea. But I fear it would too hard to maintain >for anything but the smallest lib/app. I think it's better to just to >have intermediary versions that add warnings to methods that are going >away soon (if possible). > Hmmm.. 1. I think, many library authors already put this information to changelogs in human-readable form (like "Warning! API changed: blah"). I just propose to do such messages auto-checkable. 2. I've envisioned (but forget to show) the case you saying about: module MyLibrary::Changelog version(0.2.5) do method_deprecated [SomeClass, :method_a], "Will remove this ASAP" end end just one more usage of the idea :) V.