class ConnectionConfigurationImap

Attributes

config[R]
print_settings[R]

Public Class Methods

new(config) click to toggle source
# File lib/connection_configuration/imap.rb, line 6
def initialize(config)
  @config = config
end

Public Instance Methods

configuration_wizard() click to toggle source

Run the IMAP configuration wizard Returns hash or either: { “save” => true, “config” => “{ config }” }

  • or -

{ “save” => false }

# File lib/connection_configuration/imap.rb, line 14
def configuration_wizard
  @prompt = TTY::Prompt.new

  prompt_server
  prompt_username
  prompt_port
  prompt_ssl

  result = prompt_confirm_save_settings
  @prompt = nil
  result
end
prompt_confirm_save_settings() click to toggle source

Confirm settings with user

# File lib/connection_configuration/imap.rb, line 75
def prompt_confirm_save_settings
  server_settings = print_settings
  imap_confirm_val = @prompt.select(
    "Would you like to save the following settings?\n" \
    "NOTE: Any existing configuration will be overwritten\n\n" \
    "#{server_settings}",
    cycle: true
  ) do |menu|
    menu.choice 'Save', true
    menu.choice 'Cancel', false
  end

  imap_confirm_val ? { 'save' => true, 'config' => @config } : { 'save' => false }
end
prompt_port() click to toggle source

Get imap port

# File lib/connection_configuration/imap.rb, line 54
def prompt_port
  @config['imap']['port'] = @config['imap']['port'] || '993'
  @config['imap']['port'] = @prompt.ask(
    'Enter the imap port to connect to (e.g. IMAP = 143; IMAP SSL = 993)',
    default: @config['imap']['port']
  )
end
prompt_server() click to toggle source

Get imap server config

# File lib/connection_configuration/imap.rb, line 38
def prompt_server
  @config['imap']['server'] = @prompt.ask(
    'Enter your imap server (e.g. imap.example.com)',
    default: @config['imap']['server']
  )
end
prompt_ssl() click to toggle source

Get imap ssl status

# File lib/connection_configuration/imap.rb, line 63
def prompt_ssl
  @config['imap']['ssl'] = @config['imap']['ssl'] != false
  imap_ssl_val = @config['imap']['ssl'] ? 1 : 2
  imap_ssl_val = @prompt.select('Use SSL?', cycle: true) do |menu|
    menu.default imap_ssl_val
    menu.choice 'Yes', 1
    menu.choice 'No', 2
  end
  @config['imap']['ssl'] = imap_ssl_val == 1
end
prompt_username() click to toggle source

Get imap username

# File lib/connection_configuration/imap.rb, line 46
def prompt_username
  @config['imap']['username'] = @prompt.ask(
    'Enter your imap username/ email address (e.g. tim@example.com)',
    default: @config['imap']['username']
  )
end