Module: RubyEventStore::CLI::EventRenderer

Included in:
Commands::Search, Commands::StreamEvents
Defined in:
lib/ruby_event_store/cli/event_renderer.rb

Instance Method Summary collapse

Instance Method Details

#render(events, format:) ⇒ Object



8
9
10
11
12
13
# File 'lib/ruby_event_store/cli/event_renderer.rb', line 8

def render(events, format:)
  case format
  when "json" then render_json(events)
  when "table" then render_table(events)
  end
end

#render_json(events) ⇒ Object



15
16
17
18
19
20
# File 'lib/ruby_event_store/cli/event_renderer.rb', line 15

def render_json(events)
  puts JSON.pretty_generate(events.map { |e|
    { event_id: e.event_id, event_type: e.event_type, data: e.data,
      metadata: e..to_h, timestamp: e.timestamp.iso8601(3) }
  })
end

#render_table(events) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/ruby_event_store/cli/event_renderer.rb', line 22

def render_table(events)
  return puts "(no events)" if events.empty?

  puts "%-36s  %-40s  %s" % ["EVENT ID", "TYPE", "TIMESTAMP"]
  puts "-" * 90
  events.each do |e|
    puts "%-36s  %-40s  %s" % [e.event_id, e.event_type, e.timestamp.iso8601(3)]
  end
  puts "\n#{events.size} event(s)"
end