class Buschtelefon::Brain

Attributes

capacity[R]

Public Class Methods

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

Public Instance Methods

<<(gossip) click to toggle source
# File lib/buschtelefon/brain.rb, line 10
def <<(gossip)
  @gossip_sink << gossip
  reorganize
end
contains?(gossip) click to toggle source
# File lib/buschtelefon/brain.rb, line 20
def contains?(gossip)
  @gossip_sink.include?(gossip)
end
load_batch(gossips) click to toggle source
# File lib/buschtelefon/brain.rb, line 15
def load_batch(gossips)
  @gossip_sink += gossips
  reorganize
end
to_a() click to toggle source
# File lib/buschtelefon/brain.rb, line 24
def to_a
  @gossip_sink
end

Private Instance Methods

reorganize() click to toggle source
# File lib/buschtelefon/brain.rb, line 30
def reorganize
  @gossip_sink.sort! { |x, y| y.created_at <=> x.created_at }
  @gossip_sink.uniq!(&:message)
  if @capacity
    @gossip_sink.slice!(capacity..-1) # only keep the newest
  end
end