Class: Mobx::Transaction
- Inherits:
-
Object
- Object
- Mobx::Transaction
- Defined in:
- lib/mobx/transaction.rb
Instance Attribute Summary collapse
-
#scheduled ⇒ Object
readonly
Returns the value of attribute scheduled.
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(block) ⇒ Transaction
constructor
A new instance of Transaction.
- #schedule_observer(observer) ⇒ Object
- #schedule_observers(observers) ⇒ Object
Constructor Details
#initialize(block) ⇒ Transaction
Returns a new instance of Transaction.
5 6 7 8 |
# File 'lib/mobx/transaction.rb', line 5 def initialize(block) @block = block @scheduled = [] end |
Instance Attribute Details
#scheduled ⇒ Object (readonly)
Returns the value of attribute scheduled.
3 4 5 |
# File 'lib/mobx/transaction.rb', line 3 def scheduled @scheduled end |
Class Method Details
.call(block) ⇒ Object
10 11 12 13 |
# File 'lib/mobx/transaction.rb', line 10 def self.call(block) transaction = self.new(block) transaction.call end |
Instance Method Details
#call ⇒ Object
15 16 17 18 19 20 21 22 23 |
# 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) ⇒ Object
29 30 31 32 |
# File 'lib/mobx/transaction.rb', line 29 def schedule_observer(observer) @scheduled << observer @scheduled.uniq! end |
#schedule_observers(observers) ⇒ Object
25 26 27 |
# File 'lib/mobx/transaction.rb', line 25 def schedule_observers(observers) observers.each { |observer| schedule_observer(observer) } end |