Class: Arf::Observer

Inherits:
Object
  • Object
show all
Defined in:
lib/arf/observer.rb

Instance Method Summary collapse

Constructor Details

#initializeObserver

Returns a new instance of Observer.



5
6
7
8
9
# File 'lib/arf/observer.rb', line 5

def initialize
  @handler = nil
  @primed = false
  @mutex = Monitor.new
end

Instance Method Details

#attach_handler(handler) ⇒ Object



11
12
13
# File 'lib/arf/observer.rb', line 11

def attach_handler(handler)
  @handler = handler
end

#modifyObject



19
20
21
22
23
24
25
26
27
# File 'lib/arf/observer.rb', line 19

def modify
  @mutex.synchronize do
    yield
    if @primed
      @primed = false
      Arf::Reactor.post { @handler.observer_changed(self) }
    end
  end
end

#primeObject



15
16
17
# File 'lib/arf/observer.rb', line 15

def prime
  @primed = true
end