Title / Description
Code 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| puts("Email: Prezado cliente seu pedido esta: #{p.status}") puts("Estoque: status - #{p.status} - estoque remanejado") end pedido.mudar_status "Aberto" pedido.mudar_status "Confirmado" pedido.mudar_status "Reservado" pedido.mudar_status "Despachado"
Author
Highlight as C C++ CSS Clojure Delphi ERb Groovy (beta) HAML HTML JSON Java JavaScript PHP Plain text Python Ruby SQL XML YAML diff code