IRBを読む
IRB.startから読んでいく
$0とは?
$0 == __FILE__というイディオム
この変数に代入すると ps(1) の出力が変化します PSの結果がIRBになって嬉しい
def IRB.setupという書き方珍しい。色々読み込まれている
irb/lib/irb/init.rbはコンフィグたんまり
block.()
callを短くかけるやつ
$でshow_source
OptParseを手でやるみたいな感じだ...
rc_file_generatorsとは
yield proc難しい
for文が...
a_matsudaさん補足
keijuさん
Rubyの名付け親
初代のIRBをガッと作った
特殊な書き方
糸柳
サンクチュアリに手を出す
初代の書き方を継承
文化遺産。味わって。
Irb classへ
IRB.context
workspaceとは..
binding.irbのbindingみたいなやつ
bind_call
repl_type_completor
補完とかやってるやつ
よく会話に出てくるrelineとは
is_a?はObjectに追加されてる。が、それより上のObject(Basic Object)では使えない。
code:rb
# case文を書き下すと
case str
when String
end
String === str は同じ
when ->x{}なんじゃこれ
ruby-lex.rb(ハイフン区切り。keijuスタイル)
最古のlexer。Ruby本体とは別のlexer。
Prismにしたい。
何これattr
Irb#runへ
keep_script_lines
each_toplevel_statement
inputを読んで、statementに変換する。evalの重要な処理
workspace.rbでevalしてる。
そもそbindingとは
いろんな現在の状況をオブジェクトとして管理
context_modeという謎のmode
evalメソッドまずなんなのか
__LINE__ - 3
本来のevalの実行してるラインの行数を正しくしたいので
IRB WASM
REPLのRとEまで読めたぞい!
Reline.readmultiline?
次回はRelineか?
easter-egg.rb
リンク