-
Notifications
You must be signed in to change notification settings - Fork 331
BitClustDatabase
Sho Hashimoto edited this page Mar 30, 2014
·
2 revisions
BitClust データベースについて
ファイルシステムべったりの実装。 以下のようなディレクトリツリーを持つ。
PREFIX/
properties
library/
_builtin
English
Env
Win32API
abbrev
base64
benchmark
bigdecimal
bigdecimal.jacobian
:
:
class/
ARGF
Abbrev
ArgumentError
Array
Base64
Benchmark
BigDecimal
Bignum
Binding
CGI
:
:
method/
ARGF/
s.binmode._builtin
s.close._builtin
s.closed=3f._builtin
s.dup._builtin
s.each._builtin
s.each_byte._builtin
s.each_line._builtin
s.eof._builtin
s.file._builtin
s.filename._builtin
:
:
Abbrev/
Array/
Base64/
Benchmark/
BigDecimal/
Bignum/
Binding/
CGI/
CGI__Cookie/
:
:
メソッドのファイル名のフォーマットは以下の通り。
TYPECHAR.METHODNAME.LIBID
- TYPECHAR
- メソッドの名前空間を表す一文字。 s: 特異メソッド、i: インスタンスメソッド、m: モジュール関数、 c: 定数、v: 特殊変数
- METHODNAME
- メソッド名をエンコードしたもの。 /?w/ 以外の文字は「=」+「文字コード」にエンコードされる。
- LIBID
- ライブラリ ID。require に書く名前を tr('/', '.') したもの。 既存のライブラリに「.」を使ってるようなバカがいないことを願う。
メソッドの追加や上書きに対応するため、 メソッドのファイルにライブラリ ID を入れたところが特徴である。
各ライブラリやクラス、メソッドのファイルの内容は 以下のようなフォーマットで記録される。
requires=
classes=ERB,ERB__Util,ERB__DefMethod
methods=
eRuby スクリプトを処理するクラス。
従来 ERbLight と呼ばれていたもので、標準出力への印字が文字列の挿入とならない点が
eruby と異なります。
(以下略)
最初に key=value の行が並び、 空行を 1 行入れてドキュメントが来る。これだけ。 ドキュメントのフォーマットについては ClassReferenceManualFormat を参照。
こちらもファイルシステムべったり構造。 シンボル名でディレクトリを掘っただけの超シンプルなディレクトリツリーを持つ。
PREFIX/
rb_define_method/
document
source