すべての優れたコマンド ライン構造にGLI 2.0 gemを使用して、独自の gem を作成しました。正常に動作していますが、パイプされたデータもサポートしたいと思います。
my_prog new some_file # this is ok already
some_process | my_prog # how do I add this?
どこかで、それがどのように呼び出されたかを (どういうわけか) 確認してから、適切に行動する必要があります。少し簡略化しましたが、現在のコードは以下のとおりです。
require 'rubygems'
require 'gli'
include GLI::App
desc 'My example'
command :new do |c|
desc 'Specify input file'
arg_name 'filename'
c.flag [:i,:input]
c.action do |global_options,options,args|
exit_now!("Input file must be specified") if options[:o].nil?
exit_now!("New failed") unless File.exists?(options[:o])
end
end
exit run(ARGV)