class Rails::Console

def self.start(*args)

def self.start(*args)
  new(*args).start
end

def environment

def environment
  options[:environment]
end

def initialize(app, options = {})

def initialize(app, options = {})
  @app     = app
  @options = options
  app.sandbox = sandbox?
  if sandbox? && app.config.disable_sandbox
    puts "Error: Unable to start console in sandbox mode as sandbox mode is disabled (config.disable_sandbox is true)."
    exit 1
  end
  app.load_console
  @console = app.config.console || begin
    require "irb"
    require "irb/completion"
    IRB::WorkSpace.prepend(BacktraceCleaner)
    if !Rails.env.local?
      ENV["IRB_USE_AUTOCOMPLETE"] ||= "false"
    end
    IRB
  end
end

def sandbox?

def sandbox?
  return options[:sandbox] if !options[:sandbox].nil?
  return false if Rails.env.local?
  app.config.sandbox_by_default
end

def set_environment!

def set_environment!
  Rails.env = environment
end

def start

def start
  set_environment! if environment?
  if sandbox?
    puts "Loading #{Rails.env} environment in sandbox (Rails #{Rails.version})"
    puts "Any modifications you make will be rolled back on exit"
  else
    puts "Loading #{Rails.env} environment (Rails #{Rails.version})"
  end
  if defined?(console::ExtendCommandBundle)
    console::ExtendCommandBundle.include(Rails::ConsoleMethods)
  end
  console.start
end