class Console1984::Supervisor

Entry point to the system. In charge of installing everything and starting and stopping sessions.

Public Instance Methods

exit_irb() click to toggle source
# File lib/console1984/supervisor.rb, line 33
def exit_irb
  stop
  IRB.CurrentContext.exit
end
install() click to toggle source

Installs the console protections.

See Console1984::Shield

# File lib/console1984/supervisor.rb, line 13
def install
  require_dependencies
  shield.install
end
start() click to toggle source

Starts a console session.

This will enable protected mode and log the new session in the configured session logger.

# File lib/console1984/supervisor.rb, line 22
def start
  shield.enable_protected_mode(silent: true)
  show_welcome_message
  start_session
end
stop() click to toggle source

Stops a console session

# File lib/console1984/supervisor.rb, line 29
def stop
  stop_session
end

Private Instance Methods

current_username() click to toggle source
# File lib/console1984/supervisor.rb, line 64
def current_username
  username_resolver.current
end
require_dependencies() click to toggle source
# File lib/console1984/supervisor.rb, line 39
def require_dependencies
  Kernel.silence_warnings do
    require 'parser/current'
  end
  require 'colorized_string'

  # Explicit lazy loading because it depends on +parser+, which we want to only load
  # in console sessions.
  require_relative "./command_validator/.command_parser"

  # This solves a weird class loading error where ActiveRecord dosn't resolve +Relation+ properly.
  # See https://github.com/basecamp/console1984/issues/29
  #
  # TODO: This is a temporary fix. Need to figure out why/when this happens.
  require "active_record/relation"
end
start_session() click to toggle source
# File lib/console1984/supervisor.rb, line 56
def start_session
  session_logger.start_session current_username, ask_for_session_reason
end
stop_session() click to toggle source
# File lib/console1984/supervisor.rb, line 60
def stop_session
  session_logger.finish_session
end