Victor 'Zverok' Shepelev
9/26/2007 2:42:00 PM
From: Trans [mailto:transfire@gmail.com]
Sent: Wednesday, September 26, 2007 5:34 PM
>
>
>On Sep 26, 6:42 am, "Victor \"Zverok\" Shepelev"
><vshepe...@imho.com.ua> 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.