Class: Hobostove::MessageRenderer

Inherits:
Struct
  • Object
show all
Defined in:
lib/hobostove/message_renderer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#window_sizeObject

Returns the value of attribute window_size

Returns:

  • (Object)

    the current value of window_size



2
3
4
# File 'lib/hobostove/message_renderer.rb', line 2

def window_size
  @window_size
end

Instance Method Details

#render(message) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/hobostove/message_renderer.rb', line 9

def render(message)
  case message.type
  when "TextMessage"
    "#{message.username}: #{message.body}"
  when "EnterMessage"
    "\t#{message.username} joined"
  when "LeaveMessage"
    "\t#{message.username} left"
  when "TimestampMessage"
    "\t#{message.timestamp.strftime("%H:%M")}"
  when "PasteMessage"
    "#{message.username} (paste message):\n#{message.body}"
  when "TweetMessage"
    "#{message.username} (tweet message): #{message.body}"
  when "UploadMessage"
    "#{message.username} (upload message): #{message.body}"
  end
end

#render_lines(message) ⇒ Object



3
4
5
6
7
# File 'lib/hobostove/message_renderer.rb', line 3

def render_lines(message)
  message = render(message)
  return [] if message.nil?
  message.scan(/.{1,#{window_size}}/)
end