我有一个ruby脚本,我的" config"是一个额外的文件。它被称为ftp_config.rb
。然后我有filetrack.rb
从ftp服务器下载文件 - 在ftp_config.rb中指定了哪些文件/目录。最后我得到rufus_download.rb
每天从filetrack.rb调用一个函数,所以我从服务器获取所有新文件。
一切正常我只想知道如何制作它所以当我编辑ftp_config.rb时,脚本会选择更改,而无需重新启动rufus_download.rb。
当前
require_relative 'filetrack'
require_relative 'ftp_config'
现在,如果我添加要下载到ftp_config.rb的新文件,我需要重新启动rufus
答案 0 :(得分:2)
require_relative
会返回false
,如果您没有
true
如果您想直接加载更改,则需要load
个文件
load 'path/to/ftp_config'
每次脚本执行时,都会加载/重新加载脚本
编辑:
您可以通过展开当前ruby脚本的路径来加载:
load ::File.expand_path('../ftp_config.rb', __FILE__)
假设文件位于同一文件夹中
EDITEND
希望有所帮助
答案 1 :(得分:0)
你需要一个监视文件变化的gem,例如" sinatra / reloader"适用于Sinatra,例如filewatcher或listen适用于桌面应用。在检测到更新后,您load
脚本(不需要)仅加载一次脚本。
这是filewatcher的一个例子。
STDOUT.sync = true
FileWatcher.new(['c:/test/scans']).watch() do |filename, event|
puts filename
if(event == :changed)
puts "File updated: " + filename
end
if(event == :delete)
puts "File deleted: " + filename
end
if(event == :new)
puts "Added file: " + filename
end
end