Class: Soapstone::MessagePresenter

Inherits:
Object
  • Object
show all
Defined in:
lib/soapstone/core/message_presenter.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message) ⇒ MessagePresenter

Returns a new instance of MessagePresenter.



6
7
8
# File 'lib/soapstone/core/message_presenter.rb', line 6

def initialize(message)
  @message = message
end

Class Method Details

.call(message) ⇒ Object



2
3
4
# File 'lib/soapstone/core/message_presenter.rb', line 2

def self.call(message)
  new(message).call
end

Instance Method Details

#callObject



10
11
12
13
14
15
16
# File 'lib/soapstone/core/message_presenter.rb', line 10

def call
  message
    .then(&method(:wrap_message))
    .then(&method(:format_lists))
    .then(&method(:enhance_typography))
    .then(&method(:format_subject_line))
end

#wrap_message(text) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/soapstone/core/message_presenter.rb', line 18

def wrap_message(text)
  subject, body = split_subject_and_body(text)

  if subject.nil? # single line message or no clear body structure
    Strings.wrap(body, 72)
  elsif body.strip.empty?
    subject
  else
    "#{subject}\n\n#{wrap_body(body)}"
  end
end