Class: ParallelTests::FineGrainTest::FileQueue
- Inherits:
-
Object
- Object
- ParallelTests::FineGrainTest::FileQueue
- Defined in:
- lib/parallel_tests/fine_grain_test/file_queue.rb
Constant Summary collapse
- FILE_NAME =
'.test.queue'.freeze
- MARKER =
'--POPULATE--'.freeze
Instance Method Summary collapse
- #deq ⇒ Object
- #enq_all(test_cases) ⇒ Object
-
#initialize(file_name = FILE_NAME) ⇒ FileQueue
constructor
A new instance of FileQueue.
- #reset ⇒ Object
- #size ⇒ Object
Constructor Details
Instance Method Details
#deq ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/parallel_tests/fine_grain_test/file_queue.rb', line 30 def deq lock do |file| lines = file.read.split(/\n/) return nil if lines.empty? || lines[0].chomp == MARKER rewrite(file, lines[1..-1]) return TestCase.decode(lines[0].chomp) end end |
#enq_all(test_cases) ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/parallel_tests/fine_grain_test/file_queue.rb', line 19 def enq_all(test_cases) lock do |file| return if already_populated?(file) test_cases = yield(test_cases) if block_given? lines = test_cases.map { |test_case| TestCase.encode(test_case) } rewrite(file, lines) end end |
#reset ⇒ Object
13 14 15 16 17 |
# File 'lib/parallel_tests/fine_grain_test/file_queue.rb', line 13 def reset lock do |file| rewrite(file, [ MARKER ]) end end |
#size ⇒ Object
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/parallel_tests/fine_grain_test/file_queue.rb', line 40 def size lock do |file| lines = file.read.split(/\n/) if lines.empty? || lines[0].chomp == MARKER return 0 else return lines.size end end end |