5

Rails 3アプリのgitcommitを実行する前後に、一連のルーチンの「クリーンアップ」タスクを実行していることがよくあります。

これらをThorスクリプトに入れることを考えていましたが、Thor(またはRake)を使用してシステム上の他のツールを呼び出す方法がわかりませんでした。

ThorまたはRakeスクリプトからのようなコマンドを呼び出すことは可能git logですか?もしそうなら、それはどのように見えますか?

ありがとう!

4

2 に答える 2

12

シェルアウトするだけです:

result = %x(git log)
puts result

また

system('git log')

出力を端末に渡したいだけの場合。

Git ツールを Ruby ライブラリに抽象化するグリットgemもあります。

require 'grit'
repo = Grit::Repo.new("/path/to/repo")
repo.commits.each do |commit|
  puts "#{commit.id}: #{commit.message}"
end
于 2011-01-26T07:47:37.843 に答える
4

これらは単なる Ruby ファイルであることを忘れないでください。したがって、Ruby アーセナルのすべてをそこでも使用できます。つまり、%x[rm -rf /]、システム("rm -rf /")、`rm -rf などです。 /` はこれらのスクリプトでもアクセスできます。

于 2011-01-26T06:42:57.453 に答える