class ComputerBuilder def method_missing(name, *args) words = name.to_s.split("_") return super(name, *args) unless words.shift == 'add' words.each do |word| next if word == 'and' add_cd if word == 'cd' add_dvd if word == 'dvd' add_hard_disk(100000) if word == 'harddisk' turbo if word == 'turbo' end end end