Спасибо за ссылку!

аружил, что часто выполняю последовательность рутинных задач «очистки» до и после выполнения git commit для моего приложения на Rails 3.

Я думал о том, чтобы поместить эти вещи в скрипт Thor, но я не смог понять, как использовать Thor (или Rake) для вызова других инструментов в системе.

Можно ли вызвать команду, какgit log из сценария Thor или Rake, и если да, то как это выглядит?

Спасибо!

Ответы на вопрос(1)

Решение Вопроса

Просто раскошелиться:

result = %x(git log)
puts result

или же

system('git log')

если вы просто хотите передать вывод на терминал.

Существует такжезернистость гем, который абстрагирует инструменты Git в библиотеку Ruby:

require 'grit'
repo = Grit::Repo.new("/path/to/repo")
repo.commits.each do |commit|
  puts "#{commit.id}: #{commit.message}"
end
 user36090703 мая 2013 г., 17:16
Следует отметить, что Grit в настоящее время не работает в Windows из-за проблемы с одной из его зависимостей, не поддерживаемой на платформе.github.com/rtomayko/posix-spawn/issues/9
 Theo06 апр. 2012 г., 10:51
@Jorge, вы должны быть в или ниже директории проекта.git каталог) иgit команда должна быть в пути (т.е. вы должны убедиться, что ваш скрипт действительно может найтиgit).
 Jorge05 апр. 2012 г., 22:14
Хм, я получаю ноль, используя% x, system и back-ticks. Есть ли что-то, что мне не хватает? Нужно ли CD в правильный каталог?
 Andrew26 янв. 2011 г., 15:09
Ага! Благодарю. "shell out" - это, вероятно, ключевое слово, которого мне не хватало в моем квесте в Google :)

Ваш ответ на вопрос