# Возможно я слишком усложняю задачу, у которой должно быть решение проще, но как из класса передать во второй класс объект первого класса?
# У меня есть класс, допустим, слушатель, который "подписывается" на класс эвент-мейкер. Когда эвент-мейкер собсна делает эвент мне надо слушателю передать время и значения эвента. Поиск по Notification паттерну нашел лишь вопросы по апишкам всяких фейсбуков и их уведомлений.
# Единственное до чего я додумался, это при вызове метода subscribe_to класса Listener записывать в переменную-массив класса Eventmaker текущий объект класса Listener, а при создании эвента в классе Eventmaker проходить по массиву и передавать notification в каждый объект.

class Listener
  def call(event, time)
  	puts "Got event: #{event.inspect} @ #{time.inspect}"
  end
end

class EventMaker
  def initialize
  	@subscribers = []
  end

  def subscribe(listener)
  	@subscribers << listener
  end
  
  def publish(event)
  	time = Time.now

  	@subscribers.each do |subscriber|
  	  subscriber.call(event, time)
  	end
  end
end

listener = Listener.new
publisher = EventMaker.new

publisher.subscribe(listener)
publisher.publish('ruby is dead')