查找一个目录下的的所有扩展名为 rb 文件,删除文件中的一大段字符。
例如:
unused_str=%(<
multi-line text
multi-line text
>)
最好提供 raketask 的格式。
desc "delete unused string"
task :default do
...
end
当然也可以是 bash script 的形式,调用 Ruby API.
desc "删除一段文本"
task :default do
files = Dir['**/*.rb']
files.each do |file|
tmp_str = File.read(file)
tmp_str.gsub!(str, "")
File.open(file, "w") do |f|
f.write(tmp_str)
end
end
end
这是我丑陋的实现,怎么看怎么不像 Ruby 风格的代码,谁给个优雅一点的....
你不在,都没人写那些超级奇怪的解决算法了,我真是很佩服你,除了代码风格不太注意以外,你写的代码我总是一眼,不,很多眼也看不懂的。可想而知你看过多少算法的书。偶连一本都没看过。
def gsub_file(relative_destination, regexp, *args, &block)
path = destination_path(relative_destination)
content = File.read(path).gsub(regexp, *args, &block)
File.open(path, 'wb') { |file| file.write(content) }
end
gsub_file 是 rails genenrator 的方法
rbfiles = File.join(directory ,'**', '*.'+'rb')
Dir.glob(rbfiles).each do |filename|`
# gsub_file here