class Gamefic::Messenger
Message formatting and buffering.
def buffer
-
(String)
-
def buffer @buffers.push('') yield if block_given? @buffers.pop end
def flush
-
(String)
- The flushed message
def flush @buffers.pop.tap { @buffers.push '' } end
def format(message)
def format(message) "<p>#{message.strip}</p>" .gsub(/[ \t\r]*\n[ \t\r]*\n[ \t\r]*/, "</p><p>") .gsub(/[ \t]*\n[ \t]*/, ' ') .gsub(/<p>\s*<p>/, '<p>') .gsub(%r{</p>\s*</p>}, '</p>') end
def initialize
def initialize @buffers = [''] end
def messages
-
(String)
-
def messages @buffers.last end
def stream(message)
-
(String)
- The messages in the current buffer
Parameters:
-
message
(String, #to_s
) --
def stream(message) @buffers.push(@buffers.pop + message.to_s) .last end
def tell(message)
-
(String)
- The messages in the current buffer
Parameters:
-
message
(String, #to_s
) --
def tell(message) @buffers.push(@buffers.pop + format(message.to_s)) .last end