I've taught a couple of kids the basics of coding over the past 5 years, albeit using Python in each case (Ruby probably wouldn't be too bad, but I've got little to no experience with it).
First off, start small, and make a point to explain why you're starting small. I've usually used some kind of video-game analogy as part of the explanation (that end goal of writing a game or developing a web app is like the final boss of a video game, you can't realistically go fight it immediately after you start playing and expect to do well). A lot of people expect to go straight into the flashy stuff right off the bat, but get really disappointed when they start out just teaching a computer basic arithmetic. Making sure that the initial expectations are realistic helps people, and especially kids, stay focused long enough to get to the good stuff.
Beyond that, it's largely figuring out how to explain many of the core concepts to them. Some things I've found helpful regarding that:
And one last point, with a funny anecdote to go with it:
Thanks Austin for sharing your experience. It's quite useful especially "start small" is spot on.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.