Class: Legion::Gaia::ChannelAwareRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/legion/gaia/channel_aware_renderer.rb

Constant Summary collapse

DEFAULTS =
{
  cli: { max_length: nil, detail_level: :full },
  teams_desktop: { max_length: 4000, detail_level: :moderate },
  teams_mobile: { max_length: 500, detail_level: :concise },
  slack: { max_length: 3000, detail_level: :moderate },
  voice: { max_length: 200, detail_level: :terse }
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(settings: {}) ⇒ ChannelAwareRenderer

Returns a new instance of ChannelAwareRenderer.



14
15
16
# File 'lib/legion/gaia/channel_aware_renderer.rb', line 14

def initialize(settings: {})
  @settings = settings
end

Instance Method Details

#render(output_frame) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/legion/gaia/channel_aware_renderer.rb', line 18

def render(output_frame)
  profile = resolve_profile(output_frame)
  max_length = profile[:max_length]

  return output_frame unless max_length

  content = output_frame.content.to_s
  return output_frame if content.length <= max_length

  truncate_frame(output_frame, content, max_length)
end