Module: Eventus::AggregateRoot::ClassMethods

Defined in:
lib/eventus/aggregate_root.rb

Instance Method Summary collapse

Instance Method Details

#conflict?(e1, e2) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
25
26
27
# File 'lib/eventus/aggregate_root.rb', line 22

def conflict?(e1, e2)
  return false unless @event_conflicts
  s1 = e1.to_s
  s2 = e2.to_s
  @event_conflicts.fetch(s1,[]).include?(s2) || @event_conflicts.fetch(s2,[]).include?(s1)
end

#conflicts(added = {}) ⇒ Object



15
16
17
18
19
20
# File 'lib/eventus/aggregate_root.rb', line 15

def conflicts(added = {})
  @event_conflicts ||= {}
  added.each do |k,v|
    @event_conflicts[k.to_s] = v.respond_to?(:map) ? v.map{|e| e.to_s} : [v.to_s]
  end
end

#find(id) ⇒ Object



4
5
6
7
8
9
# File 'lib/eventus/aggregate_root.rb', line 4

def find(id)
  instance = self.new
  stream = Eventus::Stream.new(id, persistence, Eventus.dispatcher)
  instance.populate(stream)
  instance
end

#persistenceObject



11
12
13
# File 'lib/eventus/aggregate_root.rb', line 11

def persistence
  @persistence ||= Eventus.persistence
end