@@ -283,29 +283,36 @@ def select(cases)
283283 def reporter_load ( format )
284284 format = DEFAULT_REPORT_FORMAT unless format
285285 format = format . to_s . downcase
286- name = reporter_list . find { |r | /^#{ format } / =~ r }
286+ name = reporter_list . find { |r | /^#{ format } / =~ r } || format
287287
288- raise "unsupported report format" unless format
289-
290- if RUBY_VERSION < '1.9'
291- require "rubytest/reporters/#{ name } "
292- else
293- require_relative "reporters/#{ name } "
288+ begin
289+ require "rubytest/format/#{ name } "
290+ rescue LoadError
291+ raise "mistyped or uninstalled report format" unless format
294292 end
295293
296294 reporter = Test ::Reporters . const_get ( name . capitalize )
297295 reporter . new ( self )
298296 end
299297
298+ # List of known report formats.
299+ #
300+ # TODO: Could use finder gem to look these up, but that's yet another dependency.
301+ #
302+ KNOWN_FORMATS = %w{
303+ dotprogress html progress outline summary tap tapy tapj test
304+ }
305+
300306 # Returns a list of available report types.
301307 #
302308 # @return [Array<String>]
303309 # The names of available reporters.
304310 def reporter_list
305- list = Dir [ File . dirname ( __FILE__ ) + '/reporters/*.rb' ]
306- list = list . map { |r | File . basename ( r ) . chomp ( '.rb' ) }
307- list = list . reject { |r | /^abstract/ =~ r }
308- list . sort
311+ return KNOWN_FORMATS . sort
312+ #list = Dir[File.dirname(__FILE__) + '/reporters/*.rb']
313+ #list = list.map{ |r| File.basename(r).chomp('.rb') }
314+ #list = list.reject{ |r| /^abstract/ =~ r }
315+ #list.sort
309316 end
310317
311318 # Files can be globs and directories which need to be
0 commit comments