Module: ParallelTests::Gherkin::Io
- Included in:
- Cucumber::FailuresLogger, RuntimeLogger
- Defined in:
- lib/parallel_tests/gherkin/io.rb
Instance Method Summary collapse
-
#lock_output ⇒ Object
do not let multiple processes get in each others way.
- #prepare_io(path_or_io) ⇒ Object
Instance Method Details
#lock_output ⇒ Object
do not let multiple processes get in each others way
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/parallel_tests/gherkin/io.rb', line 26 def lock_output if @io.is_a?(File) begin @io.flock File::LOCK_EX yield ensure @io.flock File::LOCK_UN end else yield end end |
#prepare_io(path_or_io) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/parallel_tests/gherkin/io.rb', line 7 def prepare_io(path_or_io) if path_or_io.respond_to?(:write) path_or_io else # its a path File.open(path_or_io, 'w').close # clean out the file file = File.open(path_or_io, 'a') at_exit do unless file.closed? file.flush file.close end end file end end |