|
|
@ -11,20 +11,26 @@ class Stdout
|
|
|
|
def each
|
|
|
|
def each
|
|
|
|
File.open(data_path, 'rb') do |file|
|
|
|
|
File.open(data_path, 'rb') do |file|
|
|
|
|
File.foreach(timing_path) do |line|
|
|
|
|
File.foreach(timing_path) do |line|
|
|
|
|
delay, size = TimingParser.parse_line(line)
|
|
|
|
yield(*delay_and_data_for_line(file, line))
|
|
|
|
yield(delay, file.read(size).force_encoding('utf-8'))
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def each_until(seconds)
|
|
|
|
def each_until(seconds)
|
|
|
|
time = 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
each do |delay, frame_data|
|
|
|
|
each do |delay, frame_data|
|
|
|
|
time += delay
|
|
|
|
seconds -= delay
|
|
|
|
break if time > seconds
|
|
|
|
break if seconds <= 0
|
|
|
|
yield(delay, frame_data)
|
|
|
|
yield(delay, frame_data)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def delay_and_data_for_line(file, line)
|
|
|
|
|
|
|
|
delay, size = TimingParser.parse_line(line)
|
|
|
|
|
|
|
|
data = file.read(size).force_encoding('utf-8')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[delay, data]
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|