Skip to content

Instantly share code, notes, and snippets.

@hidenowt
Created November 7, 2008 12:45
Show Gist options
  • Save hidenowt/22848 to your computer and use it in GitHub Desktop.
Save hidenowt/22848 to your computer and use it in GitHub Desktop.
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