class EV::EventSource
Public Class Methods
new(events)
click to toggle source
# File lib/ev/event_source.rb, line 3 def initialize(events) events.each { |event| apply_without_changes(event) } end
Public Instance Methods
changes()
click to toggle source
# File lib/ev/event_source.rb, line 11 def changes return [] unless @changes @changes.dup end
commit()
click to toggle source
# File lib/ev/event_source.rb, line 24 def commit @changes.clear if @changes end
dirty?()
click to toggle source
# File lib/ev/event_source.rb, line 20 def dirty? changes.size > 0 end
initial_version()
click to toggle source
# File lib/ev/event_source.rb, line 16 def initial_version version - changes.size end
version()
click to toggle source
# File lib/ev/event_source.rb, line 7 def version @version || 0 end
Protected Instance Methods
apply(event)
click to toggle source
# File lib/ev/event_source.rb, line 34 def apply(event) apply_without_changes(event) @changes ||= [] @changes << event end
handle(event)
click to toggle source
# File lib/ev/event_source.rb, line 30 def handle(event) raise NotImplementedError end
Private Instance Methods
apply_without_changes(event)
click to toggle source
# File lib/ev/event_source.rb, line 42 def apply_without_changes(event) handle(event) @version = version.next end