class RSpec::Core::Formatters::Loader

def add(formatter_to_use, *paths)

Other tags:
    Private: -
def add(formatter_to_use, *paths)
  formatter_class = find_formatter(formatter_to_use)
  args = paths.map { |p| p.respond_to?(:puts) ? p : file_at(p) }
  if !Loader.formatters[formatter_class].nil?
    formatter = formatter_class.new(*args)
    @reporter.register_listener formatter, *notifications_for(formatter_class)
  elsif defined?(RSpec::LegacyFormatters)
    formatter = RSpec::LegacyFormatters.load_formatter formatter_class, *args
    @reporter.register_listener formatter, *formatter.notifications
  else
    line = ::RSpec::CallerFilter.first_non_rspec_line
    if line
      call_site = "Formatter added at: #{line}"
    else
      call_site = "The formatter was added via command line flag or your "+
                  "`.rspec` file."
    end
    RSpec.warn_deprecation <<-WARNING.gsub(/\s*\|/,' ')
      |The #{formatter_class} formatter uses the deprecated formatter
      |interface not supported directly by RSpec 3.
      |
      |To continue to use this formatter you must install the
      |`rspec-legacy_formatters` gem, which provides support
      |for legacy formatters or upgrade the formatter to a
      |compatible version.
      |
      |#{call_site}
    WARNING
    return
  end
  @formatters << formatter unless duplicate_formatter_exists?(formatter)
  formatter
end