让我先声明我是一名“新”程序员——一名 IT 人员在完成各种教程后尝试解决他的第一个“真正”问题。
所以 - 这就是我想要做的。我正在查看 .csv 文件的目录 - 它将采用以下格式:999999_888_filename.csv
我想将“_”文件名的每个部分作为变量返回,以传递给另一个程序/脚本以执行其他任务。我想出了以下代码:
require 'rubygems'
require 'fssm'
class Watcher
def start
monitor = FSSM::Monitor.new(:directories => true)
monitor.path('/data/testing/uploads') do |path|
path.update do |base, relative, ftype|
output(relative)
end
path.create do |base, relative, ftype|
output(relative)
end
path.delete { |base, relative, ftype| puts "DELETED #{relative} (#{ftype})" }
end
monitor.run
end
def output(relative)
puts "#{relative} added"
values = relative.split('_',)
sitenum = values[0]
numrecs = values[1]
filename = values[2]
puts sitenum
end
end
我的第一个“puts”给了我完整的文件名(它只是在那里显示脚本正在运行),第二个 puts 返回了“sitenum”。我希望能够访问此输出方法的“外部”。我在 libs/ 文件夹中有这个文件(名为 watcher.rb),我在项目根目录中有第二个文件,名为“monitor.rb”,它只包含:
require './lib/watcher'
watcher = Watcher.new
watcher.start
而且我不知道如何从这个文件中访问我的“sitenum”、“numrecs”和“filename”。我不确定它是否需要是变量、实例变量或什么。我玩过 attr_accessible 和其他东西,但没有任何效果。我决定在这里问,因为我一直在旋转我的轮子来做几件事,而且我开始通过自己的搜索来迷惑自己。
提前感谢您提供的任何帮助或建议。