class SlackProgress::MessageBuilder

Public Class Methods

new(formatting_options) click to toggle source
# File lib/slack-progress/message_builder.rb, line 4
def initialize(formatting_options)
  @formatting_options = formatting_options
end

Public Instance Methods

build_message(current_value, max_value) click to toggle source
# File lib/slack-progress/message_builder.rb, line 8
def build_message(current_value, max_value)
  return if current_value > max_value
  return if current_value < 0 || max_value < 0

  num_boxes = 10

  ratio = current_value.to_f / max_value.to_f
  percentage = (ratio * 100).round(1)

  fill_count = (percentage / num_boxes).round
  remaining_count = num_boxes - fill_count

  message = @formatting_options.title
  message += "\n"
  message += (@formatting_options.completed_filler) * fill_count
  message += (@formatting_options.remaining_filler) * remaining_count
  message += " #{current_value} / #{max_value}"
  message += " (#{percentage} %) finished."
  message
end