class DreddHooks::Server::Buffer
Store JSON messages or part of them
Public Class Methods
new(message_delimiter)
click to toggle source
# File lib/dredd_hooks/server/buffer.rb, line 9 def initialize(message_delimiter) flush! @message_delimiter = message_delimiter end
Public Instance Methods
<<(string)
click to toggle source
# File lib/dredd_hooks/server/buffer.rb, line 23 def <<(string) @content += string end
any_message?()
click to toggle source
# File lib/dredd_hooks/server/buffer.rb, line 27 def any_message? @content.include? @message_delimiter end
flush!()
click to toggle source
Empty the buffer.
Returns the buffer content String.
# File lib/dredd_hooks/server/buffer.rb, line 17 def flush! content = @content @content = "" content end
unshift_messages()
click to toggle source
# File lib/dredd_hooks/server/buffer.rb, line 31 def unshift_messages flush!. split(@message_delimiter). inject([]) { |messages, message| begin messages.push JSON.parse(message) rescue JSON::ParserError # If the message after the delimiter is not parseable JSON, # then it's a chunk of the next message, and should be put back # into the buffer. @content += message messages end } end