class Buschtelefon::Tattler

Attributes

connections[R]

Public Class Methods

new() click to toggle source
# File lib/buschtelefon/tattler.rb, line 5
def initialize
  @connections = []
  @brain = Brain.new
end

Public Instance Methods

connect(tattler) click to toggle source
# File lib/buschtelefon/tattler.rb, line 18
def connect(tattler)
  @connections << tattler unless @connections.include?(tattler)
end
feed(gossip) click to toggle source
# File lib/buschtelefon/tattler.rb, line 22
def feed(gossip)
  old_gossip = @brain.contains?(gossip)
  @brain << gossip # refresh memory
  return if old_gossip

  @connections.each { |tattler| tattler.feed(gossip) }
end
knowledge() click to toggle source
# File lib/buschtelefon/tattler.rb, line 14
def knowledge
  @brain.to_a
end
load_messages(messages) click to toggle source
# File lib/buschtelefon/tattler.rb, line 10
def load_messages(messages)
  messages.each { |message| @brain << Gossip.new(message) }
end
transfer_knowledge(tattler) click to toggle source
# File lib/buschtelefon/tattler.rb, line 30
def transfer_knowledge(tattler)
  connect(tattler)
  knowledge.each { |gossip| tattler.feed(gossip) }
end