Class: Slk::Formatters::ActivityFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/slk/formatters/activity_formatter.rb

Overview

Formats activity feed items for terminal display rubocop:disable Metrics/ClassLength

Instance Method Summary collapse

Constructor Details

#initialize(output:, enricher:, emoji_replacer:, text_processor:, on_debug: nil) ⇒ ActivityFormatter

Returns a new instance of ActivityFormatter.



8
9
10
11
12
13
14
# File 'lib/slk/formatters/activity_formatter.rb', line 8

def initialize(output:, enricher:, emoji_replacer:, text_processor:, on_debug: nil)
  @output = output
  @enricher = enricher
  @emoji = emoji_replacer
  @text_processor = text_processor
  @on_debug = on_debug
end

Instance Method Details

#display_all(items, workspace, options: {}) ⇒ Object

Display a list of activity items



17
18
19
20
21
22
23
# File 'lib/slk/formatters/activity_formatter.rb', line 17

def display_all(items, workspace, options: {})
  return puts 'No activity found.' if items.empty?

  items.each do |item|
    display_item(item, workspace, options)
  end
end

#display_item(item, workspace, options) ⇒ Object

Display a single activity item



26
27
28
29
30
# File 'lib/slk/formatters/activity_formatter.rb', line 26

def display_item(item, workspace, options)
  type = item.dig('item', 'type')
  timestamp = format_time(item['feed_ts'])
  dispatch_activity_display(type, item, workspace, timestamp, options)
end