本サイト/記事は移転しました。

約10秒後にリダイレクトします。

Ruby Shoesでパイプ出力できた

 昨日の続き。

 コマンドラインからファイルにリダイレクトしてみても、コンソールに文字は出力されないのに、リダイレクトされたファイルの中身は空。どんな動きなのかわからんが、検索しながら試行錯誤でやってみたらできた。どうやらSTDOUT.flushをしなければならないもよう。

#!/usr/local/bin/shoes
#-*- encoding: utf-8 -*- 
Shoes.app :width =>  240, :height =>  200 do
	stack do
	    @e = edit_line  :margin => 7
	    @e.text = "800"
		@e.focus()
	end

	flow do
    	@c1 = check
		para 'Resize ?'
		@c1.checked = true
	end
	flow do
    	@c2 = check
		para 'Remove Geotag ?'
	end

	flow do
    	@c3 = check
    	para 'Upload to Hatena Fotolife ?'
		@c3.checked = true
    end

	button 'キャンセル' do
		exit
	end
	button 'GO' do
		if @c1.checked? then
			print @e.text
		end
		if @c2.checked? then
			print 'g'
		end
		if @c3.checked? then
			print 'f'
		end
		puts
		STDOUT.flush
		exit
	end
end

 こんなダイアログを表示する。

 出力をphpスクリプトで取り込んで、数字があればそのサイズ以下にconvertでリサイズ、gを含んでいたらjreadでexifのgeotag削除、fを含んでいたらはてなフォトライフにアップロードする。

 メモ:Rubyで終了コードを返す終了はexit!(0)とかexit!(1)とか。