18
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rubyのあまり使ってないけど便利そうなライブラリについて

Last updated at Posted at 2015-02-05

プログラミングRuby1.9ライブラリ編を読んだので、個人的にはあまり使ってなかったけど、便利そうなメソッドとかライブラリとかをメモします.

プログラミングRuby1.9ライブラリ編

組み込みクラス/モジュール

Hash

Hash#assoc キーが一致するペアを返す

Hash#rassoc valueが一致するペアを返す

IO

IO.binread バイナリとして開く

IO.foreach セパレータを指定して行ごとに繰り返す

IO.popen サブプロセスを起動してその標準入出力を取得する

Kernel

Kernel.__method__ 現在のメソッド名

Kernel.at_exit インタプリタ終了時に与えられたブロックを実行するよう登録する

Kernel.caller 現在の実行スタックを配列で返す

Kernrl.fork 子プロセスでブロックを実行する

Kernel.trap 指定したシグナルを受けたらブロックを実行する

Process

Process.wait で待つか、Process.detach で子プロセスのステータスに関心がないと宣言しとかないとゾンビプロセスだらけになる

Process.waitall forkした子プロセスが全て終了するまで待つ.各プロセスの終了ステータスがArrayで返ってくる.

Proc

Proc#=== whenにprocを指定するとcaseの値を引数としてprocを呼び出す

Proc#curry カリー化。先頭から順に適用する。

Regexp

Regexp.union 引数で渡したパターンのうち、一つ以上にマッチするようなパターンを返す。

Regexp#named_captures キャプチャ名をキーにしたHashを返す

String

String#[regexp,int] 正規表現にマッチした部分を返す。部分マッチがほしい場合はintで指定する。

String#center 左右をパディングして中央寄せする。String#ljust, String#rjust で左右寄せ。

String#crypt 文字列を暗号化して返す

String#hex "2a".hex # => 42. String#oct もあるよ。String#to_i は先頭の "0x" とか "0" で基数判断してくれる。

String#partition パターン渡して、最初に見つかった[マッチ前,マッチ部分,マッチ後] を返す。後ろから探索したい場合はString#rpartiton

String#scan パターンにマッチした部分が配列で返ってくる.パターンにグループが含まれてる場合はネストされてる.

String#squeeze 連続する文字を1文字に圧縮した文字列を返す。

その他

Array#pack, String#unpack テンプレート文字列に従って文字列化したり戻したりする

標準ライブラリ

Abbrev 文字列集合を与えると、一意に識別可能ないいかんじの短縮形=>原形 をHashで返す。

Benchmark ベンチマークとる。

Delegator 簡単に委譲を実装できる

Digest md5とかsha1とか計算する

expect IOストリームから特定のパターンが返ってくるまで待つ

FileUtils unixライクなファイル操作群

Forwardable 指定したメソッドを別のオブジェクトへ委譲する。メソッド単位で一部を委譲したい場合はDelegatorよりこっち?

GetoptLong コマンドラインオプション処理。オプションが先に来るように並べ替えたり、引数有り無し指定が便利そう。

IPAddr IPアドレスを扱う際に

irb 実行中のアプリケーションからirbを起動する。シグナルが来たらirb起動して変数の値にアクセスしたりできる。すごい。

json JSONを扱う. j とか jj でいい感じにフォーマットできる.

Logger ログレベル指定、ローテートもできるロガー

OptionParser GetoptLongより便利そう。引数の型指定できたりする.

OpenStruct Hashのキーをメンバ、valueを値とする構造体をつくる

PP インスペクトの結果をフォーマットして出力する。自分で実装する場合はPrittyPrintで。

Prime 素数関連

Profile requireするだけで実行全体をプロファイリングしてくれる。実行時に -r profile するのがお手軽で良さそう。

PStore お手軽に永続化.階層化したオブジェクトも楽に扱える.

Readline ユーザ入力を扱うためのプログラムreadlineが使えます.コマンドヒストリとか補完ができて便利.

Resolv DNSクライアント.Ruby製.

REXML XMLのパースやXPathによる問い合わせができる.Ruby製.

SDBM ハッシュみたいに使える、お手軽な永続化モジュール.

Set 集合.よく考えたら組み込みクラスに入ってなかった.

Socket ソケット通信できる.

StringIO オープンされたIOオブジェクトのようにStringを振る舞わせる

StringScanner 組み込みの String#scanとの違いとして、StringScannerは現在のポインタを持ってるので途中から再開できること.

Tempfile Rubyプログラムが終了すると自動的に削除されるテンポラリファイルを作成する.

tmpdir システムのテンポラリディレクトリへのパスを取得する.

Tracer requireするだけで、プログラムの一部または全体の実行をトレース出力する.-r tracer で起動すると全体をトレースする.

TSort トポロジカルソート.依存関係グラフを作るときなどに使えそう.

URI URI文字列をパースして、host部分やクエリ部分を取り出せる.

WEBrick お手軽HTTPサーバ.

Zlib zip,gzipを処理するモジュール.zlibライブラリがないと使えません

よくわからんかったところ

ThreadGroup の使いどころ
Contnuation の使いどころ
Fiber の使いどころ

18
17
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?