我想创建一个基于应用中已有文件(例如视图或控制器)创建文件(和目录等)的生成器。因此,如果我们有意见设立这样Rails Generator:根据已经存在的rails文件生成文件
-app
-views
- layouts
- application.html.erb
- users
- index.html.erb
- show.html.erb
- etc ...
,我想创建一个基于他们,我可以做(只用红宝石)
directories = Dir.entries("#{Rails.root}/app/views")
directories.each do |directory|
unless directory == "." or directory == ".."
files = Dir.entries("#{Rails.root}/app/views/#{directory}")
files.each do |file|
unless file == "." or file == ".."
text = File.read("#{Rails.root}/app/views/#{directory}/#{file}")
something #=> whatever else needs to go here to edit the file
something else #=> output_file.puts whatever
end
end
end
end
所以这基本上是我想要做的是什么文件使用一个生成器,这样我就可以将我的代码放到一个插件中,并用于其他应用程序。
第一个问题如何生成任意文件(使用生成器生成基于现有文件名的文件名是否适合像上面那样遍历目录,获取目录/文件并生成文件?办法做到我使用的是什么简单的方法(我似乎容易破裂)。
而且,我应该把所有的读/格式/写发电机本身的内部代码,只是传递一个字符串进入"initialize content"
部分create_file
或者我应该把它放在其他地方,或者我应该使用发生器创建裸文件和popul用init脚本吃了吗?
是否还有更多rails填充生成文件的方式类型,还是应该将所有格式代码都放在生成器中?如果是这样,那么解决这个问题的恰当方法是什么?
你的问题非常突然地结束“如果是这样,那是什么”。你有更多补充吗? – 2011-06-06 15:50:03