无法从终端提取用户输入数据

时间:2012-03-15 11:27:53

标签: ruby-on-rails ruby web-applications github

我正在开发一个可以下载的应用,一旦用户运行rake文件,就会将原始应用重命名为用户提供的名称。最好的方法是什么?

以下是详细信息。该应用位于此处:github.com/bnd5k/framework。这是一个基本的webapp(有主页,用户身份验证,测试设置)。我想设置它,以便用户克隆“框架”的回购,cd进入该目录,并运行一个执行重命名的rake任务。但不知何故,我需要rake文件询问用户他们想要什么作为他们的应用程序的新名称。这就是我被困的地方

在这个项目的当前版本中,我正在通过视图重命名。用户运行localhost,然后在浏览器中,默认视图为Namer / new。他们在那里重命名应用程序,Namer控制器重命名所有必需文件。问题是它在路径文件中应用名称更改时崩溃。所以,在这一点上,我想我应该完全避免GUI问题,并让用户在终端进行名称更改。如果您不同意,请告诉我。任何建议都会有所帮助。

更新:所以我在下面提到了Marc的评论,并且只是要求用户输入新名称作为参数的一部分。我的代码工作... sorta。当我输入这个:rake rename:changename [Funk],下面的代码更改名称。不幸的是,它将名称更改为“new_name”,而不是“Funk”。关于我出错的任何想法?

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

1 个答案:

答案 0 :(得分:1)

在你的佣金任务中尝试这个:

print "New name of app? "
new_name = STDIN.gets.chomp