LhaLib
LhaLib
LHaの抽出機能をRuby拡張ライブラリ化したもの
ダウンロード
パッケージ
http://www.artonx.org/data/lhalib
ソースコードリポジトリ
https://github.com/arton/lhalib
ライセンス
オリジナルLHa for Unixの再配布条件の項番6にしたがって、派生した別ソフトウェアとして扱う。
使い方
xというメソッドのみ定義してあります。指定されたファイルをカレントディレクトリにディレクトリ情報付きで展開します。
require 'lhalib' # 単に展開 LhaLib::x('lharchive.lzh')
- 返値:展開済みファイル数(ディレクトリ含む)
require 'lhalib' # 展開しながら情報を取得 LhaLib::x('lharchive.lzh') do |info| puts "name=#{info[:name]}" puts "filesize=#{info[:original_size]}" puts "timestamp=#{info[:stamp]}" puts "permission=#{info[:permission] & 0777}" if (info[:permission] & 040000) != 0 puts 'directory' end end
注意事項
ブロックを与えた場合、Rubyレベルでもスレッドセーフではなくなります。グローバル変数を使いまくりなので。ブロックを与えなければライブラリ内ですべての処理が完了するため、Rubyレベルでスレッドセーフです。
その他
相当手抜きな実装なので、いろいろ不都合はありそうですので、試していただけたら嬉しいです。
謝辞
元のLHa for Unixを開発された田川さん、沖さん、綿崎さん、Sourceforgeでメンテを続けられている新井さん、DOS版LHaを開発された吉崎栄泰さん, その他の開発者各位に感謝します。
Keyword(s):
References:[LhaLib] [LhaLibEn]