下面的代码给了我
NameError: undefined local variable or method `dir'
extract_snapshots方法。
该代码旨在从视频中提取快照,将它们存储在创建的临时目录中,将快照发送到服务并在之后删除目录。
def perform
using_temporary_directory do |dir|
extract_snapshots
send_snapshots
end
end
def using_temporary_directory(&b)
Dir.mktmpdir { |dir| b.call(dir) }
end
def extract_snapshots
system "ffmpeg -i #{video_file_path} -vf fps=1/#{INTERVAL} #{dir}/%04d.jpg"
end
我认为,该dir变量应该在extract_snapshots和send_snapshots中可见,因为它处于同一级别。但这不在这些方法的范围内。是否可以在不执行以下操作的情况下使dir变量可见:
def perform
using_temporary_directory do |dir|
extract_snapshots(dir)
send_snapshots(dir)
end
end
?