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