 All right, as Anthony so eloquently pointed out yesterday, raise your hand if you're an API developer, API designer. OK, what happens when you want to get rid of an API? You break it, OK. But as an API developer, you need to make the people who use your API comfortable with removing pieces of your code so that somebody else can do with it. So I had to do this recently. I wrote launchy, which is used by Cucumber and a couple other things for launching the results of test cases and things. And I changed the API completely, did two version number changes, and I removed two pieces of the API. So I wanted to make it nice for everyone else to be able to upgrade their code. So I was like, well, what's the best way to do that? So I wrote a little gem called deprecatable. And the way it works is, hey, exactly like this. Oh, there we go. So say you have a piece of code. You want to deprecate that? That's all you have to do. Oh, horrible, horrible. Let's actually bring up some code then and do it. And we'll call. So right here, you want to deprecate me. So this is a way to use it. And then the benefits of using deprecatable is that it will alert you and actually tell you the line of code, where your code, where the deprecated code was actually being executed. So example. So this is just some examples I have in the gem. We're going to do once. So there we go. We call the deprecated. This is what happens when you call it. Hey, there's a warning. And it pointed out the exact line of code that was where the deprecated method was called. And then it also has an interesting thing with, if you want to change this alert frequency to say every single time it was called, then you can just change it in the code, use an environment variable, something along those lines. We also have an ad exit handler. So it will automatically call. And it will record every call to the method in question. So this one we call this method a whole bunch of times. There's a final ad exit report which is actually marked down so you can dump this to an HTML file and put it anywhere. And it'll list every single call and tell you how many times it was called. So we called this method four times and this is where it was. We called this method two times and this is where it was. And a final report. So I encourage all of you to go out and maintain your APIs very well. Be kind if you write an API that someone else uses. Because I knew Cucumber and Capybara used this, I actually went to those pieces of code and gave them a pull request and said here, update your usage of my API. So as a person who writes a public API for something, be kind to your users and help them move forward. Don't make them to do stuff but tell them how to fix stuff that if you're changing your code and you're gonna cause a breakage and they're a piece of software. So gem install deprecatable, have fun, enjoy, and there you go. Two minutes spare. Any questions, comments? You know, I'll probably use deprecatable but there's only one method. So yeah, there's literally, I mean, this is all you do. Is you extend deprecatable and then you say deprecate, deprecate me. There's other things, you can add a message, you can say here's what you need to do instead, all that kind of good stuff. So yeah, I'll bring up this piece real quick. So there's all your, the way you can say, you can say I'm gonna move at this date, I'm gonna move at this version, here's a message to do. So it works out pretty well. I'm, as far as I know, I'm the only one that uses it, so hey. But it was a fun, interesting project and sort of a meta thing about Ruby where it had to open up the file, find the right line, print it out, do all sorts of fun stuff, so. I enjoyed it, I thought you guys might too, so. Enjoy. Thank you, Jerry.