Sha256: f3a4d16863d2537927d2ac13e1259d89b2ab0dd945a69a8b035723a148da5f3e
Contents?: true
Size: 729 Bytes
Versions: 1
Compression:
Stored size: 729 Bytes
Contents
# encoding: utf-8 module FiniteMachine # A class responsibile for storage of event subscribers class Subscribers include Enumerable def initialize(machine) @machine = machine @subscribers = [] @mutex = Mutex.new end def each(&block) @subscribers.each(&block) end def index(subscriber) @subscribers.index(subscriber) end def empty? @subscribers.empty? end def subscribe(*observers) observers.each { |observer| @subscribers << observer } end def visit(event) each { |subscriber| event.notify subscriber } end def reset @subscribers.clear self end end # Subscribers end # FiniteMachine
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
finite_machine-0.2.0 | lib/finite_machine/subscribers.rb |