Rubyで埋め込みシェルスクリプティングjcat

シェルスクリプトは強力である.しかし,痒いところに手が届かない.まとめて処理しようと思ったらプロセス数上限に到達したりとか.OSにとってプロセスの生成コストは高いのである.

そこで,Rubyシェルスクリプトのラッピングを施す.
具体的には,個別に完全なJSON文字列が入っているファイルを結合して一つのJSON文字列にする,名付けてjcat!

% cat A.json B.json
{"key1": valueA}
{"key2": valueB}

いや,次のようになってほしい.

puts jcat "A.json" "B.json"
{"key1": valueA,
 "key2": valueB}

実装は以下の通り.

require 'json'

def jcat(*args)
  return args.inject({}) {|acc, json|
  acc.merge(JSON.parse(File.open(json, "r:utf-8").read))
  }
end