class MailRunner::ManagerBot

Attributes

archive[RW]
mailbox[RW]

used for testing

webhook[RW]
webhook_status[RW]

Public Class Methods

new() click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 25
def initialize
  @mailbox = nil
  @webhook = nil
  @archive = nil
  @webhook_status = nil
end

Public Instance Methods

archive_stack?() click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 112
def archive_stack?
  archivist.stack_height > 0
end
archivist() click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 108
def archivist
  MailRunner::ArchivistBot
end
delayed_queue?() click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 96
def delayed_queue?
    queue_manager.queue_length > 0
end
delegate_archive_stack_processing() click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 116
def delegate_archive_stack_processing
  begin
    archivist.archive_stack
  rescue Exception => msg 
    puts msg.inspect
  end
end
delegate_delayed_queue_processing() click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 100
def delegate_delayed_queue_processing
    begin
            queue_manager.process_queue
    rescue Exception => msg 
            puts msg.inspect
    end
end
delegate_inbound_processing() click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 83
def delegate_inbound_processing
    begin
            inbound_manager.process_inbound(mailbox, webhook, archive)
    rescue Exception => msg 
            puts msg.inspect
    end
end
inbound_manager() click to toggle source

Delegation Methods ####

# File lib/mail_runner/head_manager_bot.rb, line 79
def inbound_manager
    MailRunner::InboundManagerBot
end
parse_options(opts) click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 38
def parse_options(opts)
    BotHelpers::Tests.all_args_included?(opts)
    
    @mailbox = "/var/mail/#{opts[:mailbox]}"
    @webhook = opts[:webhook]
    @archive = opts[:archive].nil? ? nil : opts[:archive] 
end
queue_manager() click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 92
def queue_manager
    MailRunner::QueueManagerBot
end
run() click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 56
def run
    BotHelpers::Helpers.print_monitoring_started_msg(self)
    $mad_statter.incr_stat("runner launched")
    while true 

            delegate_inbound_processing
            
            if webhook_status == "down"
                    BotHelpers::Tests.soft_test_webhook(self.webhook)
            elsif delayed_queue?
                    delegate_delayed_queue_processing
            end

    if archive_stack?
      delegate_archive_stack_processing
    end

            sleep 5
    end
end
test_options() click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 50
def test_options
  BotHelpers::Tests.test_mailbox(self.mailbox)
  BotHelpers::Tests.test_webhook(self.webhook)
  BotHelpers::Tests.test_archive(self.archive) unless self.archive.nil?
end
update_webhook_status(status) click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 46
def update_webhook_status(status)
    @webhook_status = status
end
verify_and_set(opts) click to toggle source
# File lib/mail_runner/head_manager_bot.rb, line 33
def verify_and_set(opts)
  parse_options(opts)
  test_options       
end