Class: Prdigest::Renderer

Inherits:
Object
  • Object
show all
Defined in:
lib/prdigest/renderer.rb

Defined Under Namespace

Classes: Output

Constant Summary collapse

SUPPORTED_TAG =
%r{</?(?:b|a)(?:\s+href="[^"]*")?>}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(send_empty:, empty_message:, limit: 4_096) ⇒ Renderer

Returns a new instance of Renderer.



14
15
16
17
18
# File 'lib/prdigest/renderer.rb', line 14

def initialize(send_empty:, empty_message:, limit: 4_096)
  @send_empty = send_empty
  @empty_message = empty_message.to_s
  @limit = Integer(limit)
end

Class Method Details

.parsed_length(html) ⇒ Object



10
11
12
# File 'lib/prdigest/renderer.rb', line 10

def self.parsed_length(html)
  CGI.unescapeHTML(html.gsub(SUPPORTED_TAG, "")).length
end

Instance Method Details

#render(digest) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/prdigest/renderer.rb', line 20

def render(digest)
  return render_empty(digest) if digest.total_prs.zero?

  pack(digest)
rescue RenderError
  raise
rescue StandardError => e
  raise RenderError, "digest rendering failed: #{e.class}"
end