Ruby

プログラム実行中に外部エディタを使って入力させる方法

More than 5 years have passed since last update.

SVNやGitで外部エディタを使ってコミットメッセージを入力させるのと同じことを、rubyで行いたいと思った場合、以下のようにすれば一応出来る。

require 'tempfile'

abort "External variable HOGE_EDITOR isn't set!" unless editor = ENV['HOGE_EDITOR']
tmp = Tempfile.new('deleted_soon')
system(editor + " " + tmp.path)
message = File.open(tmp.path).readlines
tmp.unlink # delete the temp file

puts message