def handle_global_options(settings)
      if settings[:"line-length"]
        @using << Laser.LineLengthWarning(settings[:"line-length"])
      end
      if (only_name = settings[:only])
        @fix = @using = Warning.concrete_warnings.select do |w|
          classname = w.name && w.name.split('::').last
          (classname && only_name.index(classname)) || (w.short_name && only_name.index(w.short_name))
        end
      end
      if settings[:profile]
        require 'benchmark'
        require 'profile'
        SETTINGS[:profile] = true
      end
      if settings[:include]
        Laser::SETTINGS[:load_path] = settings[:include].reverse
      end
      ARGV.replace(['(stdin)']) if settings[:stdin]
    end
def handle_global_options(settings)
      if settings[:"line-length"]
        @using << Laser.LineLengthWarning(settings[:"line-length"])
      end
      if (only_name = settings[:only])
        @fix = @using = Warning.concrete_warnings.select do |w|
          classname = w.name && w.name.split('::').last
          (classname && only_name.index(classname)) || (w.short_name && only_name.index(w.short_name))
        end
      end
      if settings[:profile]
        require 'benchmark'
        require 'profile'
        SETTINGS[:profile] = true
      end
      if settings[:include]
        Laser::SETTINGS[:load_path] = settings[:include].reverse
      end
      ARGV.replace(['(stdin)']) if settings[:stdin]
    end
Processes the global options, which includes picking which warnings to
 run against the source code. The settings provided determine what
 modifies the runner's settings.

 @param [Hash] settings the settings from the command-line to process.
 @option settings :only (String) a list of warning names or short names
   that will be the only warnings run. The names should be whitespace-delimited.
 @option settings :"line-length" (Integer) a maximum line length to
   generate a warning for. A common choice is 80/83.