Module: Sandthorn::EventInspector
- Defined in:
- lib/sandthorn/event_inspector.rb
Instance Method Summary collapse
- #events_with_trace_info ⇒ Object
- #has_event?(event_name, options = {}) ⇒ Boolean
- #has_saved_event?(event_name, options = {}) ⇒ Boolean
- #has_unsaved_event?(event_name, options = {}) ⇒ Boolean
Instance Method Details
#events_with_trace_info ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/sandthorn/event_inspector.rb', line 48 def events_with_trace_info begin saved = Sandthorn.find aggregate_id, self.class rescue Exception saved = [] end unsaved = self.aggregate_events all = saved .concat(unsaved) .sort { |a, b| a[:aggregate_version] <=> b[:aggregate_version] } extracted = all.collect do |e| if e[:event_data].nil? && !e[:event_data].nil? data = Sandthorn.deserialize e[:event_data] else data = e[:event_data] end { aggregate_version: e[:aggregate_version], event_name: e[:event_name].to_sym, event_data: data, event_metadata: e[:event_metadata] } end extracted end |
#has_event?(event_name, options = {}) ⇒ Boolean
39 40 41 42 43 44 45 46 |
# File 'lib/sandthorn/event_inspector.rb', line 39 def has_event? event_name, = {} matching_events = events_with_trace_info .select { |e| e[:event_name] == event_name } event_exists = matching_events.length > 0 trace = has_trace? matching_events, .fetch(:trace, {}) !!(event_exists && trace) end |
#has_saved_event?(event_name, options = {}) ⇒ Boolean
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/sandthorn/event_inspector.rb', line 22 def has_saved_event? event_name, = {} saved = events_with_trace_info unless self.aggregate_events.empty? saved.reject! do |e| e[:aggregate_version] >= self .aggregate_events.first[:aggregate_version] end end matching_events = saved.select { |e| e[:event_name] == event_name } event_exists = matching_events.length > 0 trace = has_trace? matching_events, .fetch(:trace, {}) !!(event_exists && trace) end |
#has_unsaved_event?(event_name, options = {}) ⇒ Boolean
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/sandthorn/event_inspector.rb', line 3 def has_unsaved_event? event_name, = {} unsaved = events_with_trace_info if self.aggregate_events.empty? unsaved = [] else unsaved.reject! do |e| e[:aggregate_version] < self .aggregate_events.first[:aggregate_version] end end matching_events = unsaved.select { |e| e[:event_name] == event_name } event_exists = matching_events.length > 0 trace = has_trace? matching_events, .fetch(:trace, {}) !!(event_exists && trace) end |