私はダウンロード可能なアプリケーションを作成しています。ユーザーがRAKEファイルを実行すると、元のアプリケーションの名前がユーザーの名前に変更されます。それを行う最善の方法は何ですか?端末からユーザー入力データを引き出すときに問題が発生する
ここに詳細があります。アプリはここにあります:github.com/bnd5k/framework。基本的なWebアプリケーション(ホームページ、ユーザー認証、テスト設定があります)です。私は、ユーザーが "Framework"のレポをクローンし、そのディレクトリにcdし、名前を変更するレーキタスクを実行するように設定したいと思います。しかし、どういうわけか私は自分のアプリの新しい名前として何を求めているのかをユーザに尋ねるためにレーキファイルが必要です。それは私がつかまえたところです
このプロジェクトの現在のバージョンでは、この名前を変更しています。ユーザーはlocalhostを実行し、ブラウザでデフォルトビューはNamer/newです。彼らはそこにアプリの名前を変更し、Namerコントローラはすべての必要なファイルの名前を変更します。問題は、ルートファイルでアプリ名が変更された時点でクラッシュすることです。ですから、この時点では、GUIの問題を完全に回避して、ユーザーが端末で名前を変更するようにしなければならないと考えています。もしあなたが同意しないなら、私に知らせてください。どんな提案も役に立ちます。
更新:私は以下のMarcのコメントにつきまして、ユーザーが引数の一部として新しい名前を入力するよう要求しています。私のコードはうまくいきます。私はこれをタイプします:rake rename:changename [Funk]、以下のコードは名前を変更します。残念ながら、それは "ファンク"の代わりに "new_name"に名前を変更します。私が間違っていることについてのアイデアは?
namespace :rename do
desc 'changes the name of the app'
task :changename, :new_name do
file_names = ['config/environments/test.rb', 'config/environments/production.rb',
'config/environment.rb']
file_names.each do |file_name|
text = File.read(file_name)
File.open(file_name, "w") { |file| file << text.gsub("Framework", :new_name.to_s) }
end
end
end
をなぜ単に新しい名前にrakeタスクの引数を作ってみませんか?あなたのユーザがあなたのリポジトリをプルするのに十分な洗練されたもので、レーキタスクを実行するならば、コマンドライン引数を使用するのに十分な洗練されたものです... –