Я пытаюсь написать задачу рейка, чтобы переименовать все вхождения метода в проект ruby. Я достиг этого, используя следующую команду из командной строки.Rake task для изменения всех событий метода в проекте
В основном
retention.group_by('bla').count
должен быть изменен на
retention.group_by('bla').size
мне удалось достичь этого uisng следующее из командной строки
find . -name \*.rb -exec ruby -i -p -e "gsub(/(group_by(\(([^\)]+)\))).count/, '\1.size')" \;
Я сейчас пытаюсь это сделать от рейк-задачи, чтобы сделать ее прямой для изменения во всех наших проектах. Какой самый простой/самый элегантный способ сделать это? Думаю, что я близок, просто выберите все файлы в каталоге проекта, на котором я застрял.
Почему бы не сделать находку все с IDE и с помощью Regex найти все места, где вы используете '.count' вместо' size'? – MrYoshiji
Мне нужно, чтобы это было изменено в нескольких клиентах рельсов, поэтому мне нужно сделать это как можно более прямолинейно –
Я бы использовал библиотеку файлов, чтобы открыть каждый файл и прочитать строки, чтобы найти этот шаблон. http://ruby-doc.org/core-2.2.0/File.html –