class Mobx::Transaction
Attributes
scheduled[R]
Public Class Methods
call(block)
click to toggle source
# File lib/mobx/transaction.rb, line 10 def self.call(block) transaction = self.new(block) transaction.call end
new(block)
click to toggle source
# File lib/mobx/transaction.rb, line 5 def initialize(block) @block = block @scheduled = [] end
Public Instance Methods
call()
click to toggle source
# File lib/mobx/transaction.rb, line 15 def call Mobx.wrappedOnce(:transaction, self, &@block) unless Mobx.in?(:transaction) @scheduled.each(&:call) @scheduled = [] end self end
schedule_observer(observer)
click to toggle source
# File lib/mobx/transaction.rb, line 29 def schedule_observer(observer) @scheduled << observer @scheduled.uniq! end
schedule_observers(observers)
click to toggle source
# File lib/mobx/transaction.rb, line 25 def schedule_observers(observers) observers.each { |observer| schedule_observer(observer) } end