= amstd リファレンスマニュアル

  Copyright (c) 2000 Minero Aoki <aamine@dp.u-netsurf.ne.jp>

= bench.rb

: benchmark( label, times ) { .... }
  times 回ブロックを実行するのにかかった時間(秒、Float)を返します。
  label はこのベンチの名前です。


= bug.rb

: bug!( message = 'must not happen' )
  message をダイイングメッセージにして例外 ScriptBug を投げます。
  'must not happen' は「ソフトウェア作法」にあった文。


= collfrom.rb

: collect_from( obj, mid, *args )
: collect_from( obj, mid, *args ) { .... }
  ありとあらゆるイテレータの結果を collect するメソッド。
  obj に対してイテレータ mid を起動し、その結果を配列にして返します。
  ブロック付きの時は mid のブロックとして実行され、その返り値を集めます。


= constdef.rb

仕様凍結前につき文書化せず


= delem.rb

使い方忘れた


= dispatch.rb

イベントハンドラの登録と呼び出しができるクラスをつくる

== 使用例

class MyClass
  include Dispatchable

  event_handler :on_read
  event_handler :on_write

  def read_text
    いろいろする
    dispatch :on_read    # on_read のハンドラを起動
  end
end

m = MyClass.new
# ハンドラ登録
m.on_read { puts 'よみこまれたよーん' }
m.read_text


= errutil.rb

: _print_bt_all( err )
  例外オブジェクトのバックトレースを省略せず全部表示する。
  青木のつくるアプリ/ライブラリはやたらスタックを積むので
  ruby のデフォルトの表示だと必要なとこが出ないことがある。

: protect( place = nil ) { .... }
  StandardError と ScriptError を rescue して _print_bt_all
  する。ruby-gtk のイベントハンドラで例外が起こると黙って
  消えるので protect したほうがデバッグのためにはよい。


= extmod.rb

: Module#abstract( mname )
  モジュールに抽象メソッド mname を定義する。
  再定義されないまま呼び出されると RuntimeError を起こす。

: Module#property( mname, type, r, w )
  型チェック付き attr。ただし r (読みこみの可否) w (書きこみの可否)は
  ともに省略できない。最近はめっきり使わない。


= fileutils.rb
= futils.rb

別ファイル


= gconst.rb

: global_const( vname, val )
  読み出し専用のグローバル変数 vname を定義する。
  vname はグローバル変数として適切な名前でなければいけません。

= getdep.rb

: Getdep.getdep( filename, done = {} )
  (モジュール関数)
  Ruby スクリプト filename が require しているファイルを再帰的に
  探し、「feature => フルパス」の形式のハッシュで返します。
  探す必要がない feature がある時は引数 done に渡すことで
  無視させられます。


= info.rb

amstd のメタ情報を格納したファイル。

: Amstd::Version
  '1.2.3' のような文字列

: Amstd::Copyright
  著作権表示


= must.rb

タイプチェック。

: Object#must( type )
  type === self が成立しなければ TypeError を発生させます。

: Object#must_have( *names )
: Object#needed( *names )
  names のメソッドを全て持たなければ ArgumentError を発生させます。

: Object#must_be( obj )
  self == obj でなければ ArgumentError を発生させます。

: Object#must_exist
  self が nil の時、ArgumentError を発生させます。


= pipeline.rb

これ、なんだったかなあ…


= rbparams.rb

Ruby インタプリタに関る定数を定義したモジュール RubyParams。
内容は直接見て。


= recycle.rb

インスタンスをリサイクルする機能をクラスに持たせる。
Recyclable を include すると以下のクラスメソッドが定義されます。

: use_instance( *args ) {|instance| .... }
  (必要なら) args をクラスの new に渡してインスタンスを生成し、
  ブロック終了後はそのオブジェクトを再利用します。

また include するクラスは以下のようなインスタンスメソッド
reset を定義していなければいけません。

: reset( ? )
  new と同じ引数をうけつけ、オブジェクトを再初期化する。


= rubyemu.rb

Ruby のローダのごく一部の機能だけをエミュレートしたもの。
偉そうな名前のわりにやっていることはたいしたことはない。

== module RubyEmulator

: find_feature( feature )
  require などで使う feature から実際のフルパスを検索する。

: provided?( feature )
  feature がロードされているかどうか調べる

: provide( feature )
  feature がロードされていることにする


= strquote.rb

いまいちな気がする


= symbol.rb

Symbol = Fixnum するだけ
1.6 が出た今となっては役に立たないだろう


= timer.rb

== Timer

: Timer.new( s ) { .... }
  s 秒で爆発するタイマーを作る。
  ブロック付きの時はそれを爆破時のハンドラとして登録する。

: start
: start { .... }
  タイマーをスタートする。
  ブロック付きの時はブロックの実行中だけ動かす。

: stop
  タイマーを止める。

: reset
  タイマーを再始動する。

: on_timeout { .... }
  時間が来た時のハンドラを登録する。

: sec, sec=
  爆発する秒数


= to_s.rb

: _name2str( arg )
  文字列・シンボルを文字列にする

: _type2str( arg )
  文字列・モジュールおよびその配列を文字列にする。
  配列の時は「,」で区切った文字列を返す。

: _name2sym( arg )
  文字列・シンボルをシンボルにする

: _type2sym( arg )
  文字列・シンボル・モジュールをシンボルにする


= version.rb

== VersionNumber

< Object, Comparable

: VersionNumber.new( major, minor = nil, teeny = nil )
  バージョンオブジェクトを生成します。

: VersionNumber.new( str )
  バージョンを表す文字列からオブジェクトを生成します。
  許されるのは '1.1.1' のように数字をピリオドで区切った
  形式です。

: self[i], self[i]=(n)
  i 番目の番号です。(1.2.3)[1] なら 2 です。

: major, major=
  self[0] の別名です。

: minor, minor=
  self[1] の別名です。

: teeny, teeny=
  self[2] の別名です。

: self <=> other
  Comparable 合致の <=> です。

: to_s
  '1.2.3' のような文字列を返します。
