2007年5月15日星期二

svn--版本化scaffold_resource生成文件的批处理脚本

scaffold_resource生成的文件有许多,在执行./script/generate scaffold_resource命令时添加选项“-c”可同时将这些文件添加到svn中。然则“-c”选项总是忘记输入,这时,你可以执行. /script/destroy scaffold_resource然后重新generate,但假如你已经对生成的文件作了一些修改或者许多修改,你就不愿或不能重新generate 了。下面的这段脚本可以帮助你走出这个困境:
ruby 代码

#!/usr/bin/env ruby

require 'rubygems'
require 'active_support/inflector'

@cmd = 'add'      # add, del, etc. run "svn help" for more.

# show usage
def usage
puts "Usage: #{$0} "
puts "    -- svn #{@cmd} scaffold_resource files."
end

model = $*.shift
if model
model_singular_name = Inflector.singularize(model)
model_plural_name = Inflector.pluralize(model)

puts "model is [" + model_singular_name + "]"

filebase = File.dirname(__FILE__)
puts "filebase: " + filebase

files = ["app/views/#{model_plural_name}",
         "app/views/layouts/#{model_plural_name}.rhtml",
         "app/models/#{model_singular_name}.rb",
         "app/controllers/#{model_plural_name}_controller.rb",
         "test/functional/#{model_plural_name}_controller_test.rb",
         "app/helpers/#{model_plural_name}_helper.rb",
         "test/unit/#{model_singular_name}_test.rb",
         "test/fixtures/#{model_plural_name}.yml"
         ]

Dir["db/migrate/*create_#{model_plural_name}.{rb}"].each do |x|
#    puts x
  files <<>  
将上述代码保存到当前项目的根目录,文件名可取为svn-add.rb。然后执行 chmod +x svn-add.rb

没有评论: