Проблемы с извлечением пользовательских данных из терминала - PullRequest
0 голосов
/ 15 марта 2012

Я работаю над приложением, которое можно загрузить, и, как только пользователь запустит файл rake, переименует исходное приложение в имя, которое он даст.Какой лучший способ сделать это?

Вот подробности.Приложение находится здесь: github.com / bnd5k / framework .Это базовое веб-приложение (имеет домашние страницы, аутентификацию пользователя, настройку тестирования).Я хотел бы настроить его так, чтобы пользователь клонировал репозиторий "Framework", компакт-диски в этот каталог и запускал задачу rake, которая выполняет переименование.Но каким-то образом мне нужен файл rake, чтобы спросить пользователя, что они хотят, в качестве нового имени для своего приложения.Вот где я застрял

В текущей версии этого проекта я делаю это переименование через представления.Пользователь запускает localhost, а затем в своем браузере по умолчанию используется имя Namer / new.Там они переименовывают приложение, а контроллер Namer переименовывает все необходимые файлы.Проблема в том, что происходит сбой в точке, в которой имя приложения изменяется в файле маршрутов.Итак, на данный момент, я полагаю, что мне следует полностью избегать проблемы с графическим интерфейсом и просто дать пользователю изменить имя в терминале.Если вы не согласны, дайте мне знать.Любые предложения будут полезны.

ОБНОВЛЕНИЕ: Итак, я пошел с комментарием Марка ниже и просто требую, чтобы пользователь ввел новое имя как часть аргумента.Мой код работает ... Сорта.Когда я набираю это: rake rename: changename [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 Ответ

1 голос
/ 15 марта 2012

Попробуйте это в своей задаче о граблях:

print "New name of app? "
new_name = STDIN.gets.chomp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...