Ruby & OOP: FizzBuzz Game
Wrong Objects

You've made objects, but you haven't really made the right ones.  Your Fizz, Buzz, FizzBuzz, and Element classes are really just wrappers for a string, which is already a class.

Object oriented programming is not always the best solution for a problem.  FizzBuzz itself is frankly very trivial and almost any object based approach is a needlessly complicated solution.  With that said, perhaps we can redefine the problem to make it a better fit for an object oriented solution.

New problem definition

Consider this modified problem: As input you will receive a list.  Each row (a rule) will have one or more numbers (divisors) and a text substitution.  After parsing the list, for every number 1..100 you will either print the number or a substitution for the number.  For each rule, if a number is divisible by all of the divisors, you will use the substitution.  In the event of a tie, use the substitution from the rule with the most divisors.  If there is still a ties use the substitution for the rule with the smallest individual divisor.  For example, given "3 6 apple" and "2 9 banana" and "18 candle", they all tie for an input of 18, but "2 9 banana" has the smallest divisor, 2.

Example Input:
3 fizz
5 buzz
3 5 fizzbuzz
3 6 apple
2 9 banana
18 candle
2 3 4 dog


New Classes

Now there is opportunity for new classes, perhaps Parser that reads the rules/substitutions, Rule which contains a list of divisors, the substitution, and perhaps it supports the comparison operation &lt;=> so that the rules can automatically resolve ties.  There could also be an Engine class for iterating through 1..100 and applying the rules.  There are a couple of different ways you could define the classes or even the problem here. In general though, OO solutions to trivial problems aren't a good fit.