rakeで簡単なプロジェクト生成
書き直し
require 'erb' require 'drb/drb' require 'fileutils' task :default => [:project] desc 'create project [rake project project_name=<project_name> class_name=<first_class_name> ]' task :project do FileUtils.mkdir(dir_name) write_target write_test end def write_target open("./#{dir_name}/#{target_file_name}.rb", "w") { |writer| writer.puts ERB.new(target_template).result(binding) } end def write_test open("./#{dir_name}/#{target_file_name}_test.rb", "w") { |writer| writer.puts ERB.new(test_template).result(binding) } end def dir_name ENV["project_name"] end def target_class_name ENV["class_name"] end def target_file_name target_class_name.gsub(/[A-Z]/){|char| "_" + char}.sub(/_/, "").downcase end def target_template <<EOS class <%= target_class_name %> end EOS end def test_template <<EOS require 'test/unit' require '<%= target_file_name%>' class <%= target_class_name %>Test < Test::Unit::TestCase def setup end def test_ end end EOS end
desc 'create project [rake project project_name=<project_name> class_name=<first_class_name> ]' task :project do dir_name = ENV["project_name"] target_class_name=ENV["class_name"] target_file_name = target_class_name.gsub(/[A-Z]/){|char| "_" + char}.sub(/_/, "").downcase FileUtils.mkdir(dir_name) # ターゲットクラスの作成 open("./#{dir_name}/#{target_file_name}.rb", "w") { |writer| writer.puts ERB.new(target_template).result(binding) } # テストクラスの作成 open("./#{dir_name}/#{target_file_name}_test.rb", "w") { |writer| writer.puts ERB.new(test_template).result(binding) } end def target_template <<EOS class <%= target_class_name %> end EOS end def test_template <<EOS require 'test/unit' require '<%= target_file_name%>' class <%= target_class_name %>Test < Test::Unit::TestCase def setup end def test_ end end EOS end