def initialize(app, options)
@printer = (options.delete(:default_printer) { DEFAULT_PRINTER }).to_sym
@frequency = (options.delete(:frequency) { UNSET_FREQUENCY }).to_s
@mode = (options.delete(:mode) { DEFAULT_MODE }).to_sym
@bundler = options.delete(:bundler) { false }
@gemfile_dir = options.delete(:gemfile_dir) { DEFAULT_GEMFILE_DIR }
@password = options.delete(:password) { :not_set }
@mode_for_request = nil
ProfileDataAction.check_printer(@printer)
ensure_mode_is_valid(@mode)
set_env_vars
require 'perftools'
raise ProfilerArgumentError, "Invalid option(s): #{options.keys.join(' ')}" unless options.empty?
end