【发布时间】:2011-09-07 12:35:08
【问题描述】:
我想制作一个生成器,它可以根据应用程序中现有的文件(例如,视图或控制器)创建文件(和目录等)。所以如果我们有这样的视图设置
-app
-views
- layouts
- application.html.erb
- users
- index.html.erb
- show.html.erb
- etc ...
我想基于它们创建我可以做的文件(仅使用 ruby)
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
所以这基本上就是我想用生成器做的事情,这样我就可以将我的代码滚动到插件中并将其用于其他应用程序。
第一个问题,如何生成任意文件(文件名基于使用生成器的现有文件名。像我上面那样循环浏览目录是否合适,获取目录/文件并生成文件?有没有办法使用更简单的方法来做我所做的事情(我的似乎很容易破坏)。
另外,我是否应该将所有读取/格式化/写入代码 放入生成器本身 并将字符串传递到 create_file 的 "initialize content" 部分或我应该把它放在别的地方吗?或者我应该使用生成器创建裸文件并使用初始化脚本填充它?
是否有更多的 rails 类型的填充生成文件的方式,或者我应该将所有格式化代码推入生成器中。如果是这样,解决此问题的适当方法是什么。
【问题讨论】:
-
您的问题非常突然地结束了“如果是这样,那是什么”。你还有什么要补充的吗?
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-plugins