組込ライブラリ(Binding)
eval
だけは知っておきたい。
成果物
情報源
Binding
eval
irb
local_variable_defined?
local_variable_get
local_variable_set
local_variables
receiver
source_location
eval
文字列をRubyコードとして実行する。
eval 'p "A"'
irb
REPLを開始する。
binding.irb
local_variable_defined?
ローカル変数が定義されているなら真を返す。
p binding.local_variable_defined? :v #=> true v = 1 p binding.local_variable_defined? :v #=> true p binding.local_variable_defined? :x #=> false
local_variable_get
ローカル変数の値を返す。
v = 1 p binding.local_variable_get :v #=> 1
local_variable_set
ローカル変数の値を代入する。
v = 1 p binding.local_variable_set :v, 2 #=> 2 p v #=> 2
local_variables
ローカル変数の一覧を配列で返す。
v = 1 p local_variables #=> [:v]
receiver
保持するコンテキスト内でのself
を返す。
p binding.receiver #=> main
source_location
ファイルパスと行番号を返す。
p binding.source_location #=> ["/tmp/.../0.rb", 23]
__FILE__
と__LINE__
の配列。
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
- Ruby 3.0.2
$ uname -a Linux raspberrypi 5.10.52-v7l+ #1441 SMP Tue Aug 3 18:11:56 BST 2021 armv7l GNU/Linux