Module: Cucumber::Formatter::Io

Included in:
Html, Junit, Pdf, Pretty, Progress, Rerun, TagCloud
Defined in:
lib/cucumber/formatter/io.rb

Instance Method Summary collapse

Instance Method Details

#ensure_dir(path, name) ⇒ Object



25
26
27
28
29
30
# File 'lib/cucumber/formatter/io.rb', line 25

def ensure_dir(path, name)
  raise "You *must* specify --out DIR for the #{name} formatter" unless String === path
  raise "I can't write #{name} reports to a file - it has to be a directory" if File.file?(path)
  FileUtils.mkdir_p(path) unless File.directory?(path)
  path
end

#ensure_file(path, name) ⇒ Object



19
20
21
22
23
# File 'lib/cucumber/formatter/io.rb', line 19

def ensure_file(path, name)
  raise "You *must* specify --out FILE for the #{name} formatter" unless String === path
  raise "I can't write #{name} to a directory - it has to be a file" if File.directory?(path)
  ensure_io(path, name)
end

#ensure_io(path_or_io, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/cucumber/formatter/io.rb', line 6

def ensure_io(path_or_io, name)
  return nil if path_or_io.nil?
  return path_or_io if ColorIO === path_or_io || path_or_io.respond_to?(:write)
  file = File.open(path_or_io, Cucumber.file_mode('w'))
  at_exit do
    unless file.closed?
      file.flush
      file.close
    end
  end
  file
end