sad
Ruby
code posted
created at 24 Aug 19:03
Edit
|
Back
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
require './pedido.rb' require './modulosujeito.rb' # instanciamos a classe pedido pedido = Pedido.new # instance_eval permite alterar a estrura # classe apenas para essa instancia em especifico pedido.instance_eval do class << self # transformamos essa instancia em uma classe # capaz de adicionar blocks observadores include ModuloSujeito # o metodo mudar_status é redefinido para # que ele possa notificar seus observadores alias_method :old_mudar_status,:mudar_status def mudar_status(novo_status) old_mudar_status(novo_status) # notificando os observadores notificarObservadores end end end pedido.addObservador do |p| # EmailSender # conectar() # enviar email # desconectar() puts("#Email: Prezado cliente seu pedido esta: #{p.status}") # GerenteEstoque # verificar status # Tratar estoque puts("#Estoque: Estoque remanejado") end pedido.mudar_status :Aberto pedido.mudar_status :Confirmado pedido.mudar_status :Reservado pedido.mudar_status :Despachado |
1.03 KB in 3 ms with coderay