memo:base64のエンコードデコードと関数ポインタっぽいの

base64を読み込めば大丈夫
method(:hoge)使えば関数ポインタっぽいのが取得可能っぽい。

#! ruby
# -*- coding: utf-8 -*-

require 'base64'

#DRYじゃないけど気にしない
def encode
	open($inputfile,"r") do |input|
		open($outputfile,"w") do |output|
			output.puts Base64.encode64(input.read)
		end
	end
end

def decode
	open($inputfile,"r") do |input|
		open($outputfile,"w") do |output|
			output.puts Base64.decode64(input.read)
		end
	end
end	

#だってmethodつかいたから。
METHODPOOL = {
	"encode" => method(:encode),
	"decode" => method(:decode),	
}

##########start#####################################
#変数格納とか
if     ARGV.size != 3  \
	|| ($method = METHODPOOL[ARGV[0]]) == nil  \
	|| ($inputfile = ARGV[1]) == nil\
	|| ($outputfile = ARGV[2]) == nil 
	#いまいちusageの書き方よくわかんないし、調べるつもりもめんどくさい
	puts \
	"usage: METHOD:encode|decode INPUTFILE OUTPUTFILE
ex) decode hoge.bas64 out64.jpg 
have fun"
	exit
end	

###########main#####################################
$method.call

__END__
base64がよくわからないので中身がどのようなバイナリなのか
わかんない。
判別する手はありそうだけど。
Content-Type:とかついていたらそれを読めばイイのでしょうけど。

googleimapをフィルターしてローカルのgrep対象集積フォルダにため込んでいるのですが、当然、中身にjpgやらhtmlが入ってるのもあってイラッとしました。