Slide 31
Slide 31 text
Record argument types with TracePoint
class User
def initialize(first_name, last_name)
p("initialize")
end
end
TracePoint.trace(:call) do |tp|
tp.parameters.each do |_type, name| # [[:req, :first_name], [:req, :last_name]]
value = tp.binding.local_variable_get(name)
p(name:, value:, class_name: value.class)
end
end
User.new("Yukihiro", "Matsumoto")
# {name: :first_name, value: "Yukihiro", class: String}
# {name: :last_name, value: "Matsumoto", class: String}
# "initialize"
31