Created
November 7, 2008 12:45
-
-
Save hidenowt/22848 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class SkatingContest | |
def o_vencedor; @o_vencedor; end | |
def o_vencedor=( nome ) | |
unless nome.respond_to? :to_str | |
raise ArgumentError, "O nome do vencedor deve ser uma String, | |
não um prooblema matemático ou uma lista de nomes ou qualquer ou | |
coisa parecida." | |
end | |
@o_vencedor = nome | |
end | |
end | |
========================================================================================== | |
class BilheteLoteriaAnimal | |
# Uma lista de notas válidas. | |
NOTAS = [:Ab, :A, :Bb, :B, :C, :Db, :D, :Eb, :E, :F, :Gb, :G] | |
# Armazenas as três notas escolhidas e as datas de compra. | |
attr_reader :escolhidas, :comprado | |
# Cria um novo bilhete a partir das três notas. As três notas | |
# devem ser únicas. | |
def initialize( nota1, nota2, nota3 ) | |
if [nota1, nota2, nota3].uniq! | |
raise ArgumentError, "as três escolhidas devem ser diferentes entre si" | |
elsif escolhidas.detect { |p| not NOTAS.include? p } | |
raise ArgumentError, "as três escolhidas devem ser notas da escala cromática." | |
end | |
@escolhidas = escolhidas | |
@comprado = Time.now | |
end | |
# Faz a contagem do resultado (escore) do bilhete contra o resultado do sorteio. | |
def escore( final ) | |
contador = 0 | |
final.escolhidas.each do |nota| | |
contador +=1 if escolhidas.include? nota | |
end | |
contador | |
end | |
# Construtor para criar um BilheteLoteriaAnimal aleatoriamente | |
def self.novo_aleatorio | |
new( NOTAS[ rand( NOTAS.length ) ], NOTAS[ rand( NOTAS.length ) ], | |
NOTAS[ rand( NOTAS.length ) ] ) | |
rescue ArgumentError | |
redo | |
end | |
end | |
========================================================================================== | |
require 'endertromb' | |
module EscanerPedidos | |
def escanear_por_um_pedido | |
desejo = self.read.detect do |pensamento| | |
pensamento.index( 'pedido: ' ) == 0 | |
end | |
desejo.gsub( 'pedido: ', '' ) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment