class MudratProjector::TransactionHandler

Attributes

next_projector[RW]

Public Class Methods

new(projection: projection) click to toggle source
# File lib/mudrat_projector/transaction_handler.rb, line 5
def initialize projection: projection
  @projection = projection
end

Public Instance Methods

<<(transaction) click to toggle source
# File lib/mudrat_projector/transaction_handler.rb, line 9
def << transaction
  return defer(transaction) if transaction.date > @projection.range.end
  in_projection, leftover = transaction.slice @projection.range.end
  @projection.add_transaction_batch in_projection
  defer leftover if leftover
end
defer(transaction) click to toggle source
# File lib/mudrat_projector/transaction_handler.rb, line 16
def defer transaction
  next_projector.add_transaction transaction if next_projector
end