module SkProgressBar

Constants

VERSION

Public Class Methods

create_update_db(percentage, message, jid=nil) click to toggle source

Add/Update record in ProgressBar table

# File lib/sk_progress_bar.rb, line 26
def self.create_update_db(percentage, message, jid=nil)
  db_record = jid.present? ? ProgressBar.find_by(sk_process_id: jid) : nil
  if db_record.present?
    db_record.update( message: message, sk_process_id: jid, percentage: percentage )
  else
    new_record = ProgressBar.new( message: message, sk_process_id: jid, percentage: percentage )
    new_record.save
  end
end
division_by_cycle(object_count) click to toggle source
# File lib/sk_progress_bar.rb, line 5
def self.division_by_cycle(object_count)
  return unless object_count.present? && object_count.positive?
  (100 / object_count)
end
progress_status(cycle_index, objects_count) click to toggle source

Return Percentage and Message result of cycle

# File lib/sk_progress_bar.rb, line 19
def self.progress_status(cycle_index, objects_count)
  percentage = (cycle_index + 1) * division_by_cycle(objects_count)
  message = percentage == 100 ? 'Done' : 'Almost done'
  { percentage: percentage, message: message }
end
update_progress_bar(percentage, message, jid=nil) click to toggle source

Update Progress Bar

# File lib/sk_progress_bar.rb, line 11
def self.update_progress_bar(percentage, message, jid=nil)
  ActionCable.server.broadcast 'sk_progress_bar_channel',
                               progress_status: percentage,
                               message:  message,
                               sk_process_id: jid
end