Output a set of numbers (say, 1-15), but whenever a number is divisible by 3, you output "Fizz" instead. If it's divisible by 5, you output "Buzz" instead. If it's divisible by 3 and 5, you output "FizzBuzz" instead.
The "simplest thing that could possibly work": i.e., a script. A typical implementation takes roughly a dozen lines. Hint: % is Ruby's "modulo" operator... a % b divides a by b and returns the remainder. Resources: Ruby Docs, The Pickaxe Book
Wrap your script in a method that accepts an argument of how many numbers to output. The method will output the results itself.
Alter your method so that it collects the results and returns them to the caller. The caller will output the results.
Wrap your method in a class that also implements methods returning output as plain-text, JSON and HTML.
Write tests for your class using the popular RSpec Test Framework to ensure it behaves correctly when supplied arguments of 15, 0 and nil. Also confirm your output methods behave as you expect.
Package your class as a simple gem using Bundler and upload it to GitHub for sharing with other developers.
Use the Sinatra framework to make your gem accessible from any web browser, deploying your final version to Heroku. Try using Twitter Bootstrap to give it a bit of flair.