Reference documentation and code samples for the google-cloud-debugger class Google::Cloud::Debugger::Breakpoint::Variable.
Variable
Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented:
A simple Variable:
ruby
x = 5
# Captured variable:
# { name: "x", value: "5", type: "Integer" }
A Compound Variable:
ruby
class T
attr_accessor :m1, :m2
...
end
v = T.new(1, "2")
# Captured variable:
# {
# name: "v",
# type: "T",
# members: [
# { name: "@m1", value: "1", type: "Integer" },
# { name: "@m2", value: "2", type: "String" }
# ]
# }
A Hash object:
ruby
hash = { a: 1, b: :two }
# Captured variable:
# {
# name: "hash",
# type: "Hash",
# members: [
# { name: "a", value: "1", type: "Integer" },
# { name: "b", value: ":2", type: "Symbol" }
# ]
# }
An Array object:
ruby
ary = [1, nil]
# Captured variable:
# {
# name: "ary",
# type: "Array",
# members: [
# { name: "[0]", value: "1", type: "Integer" },
# { name: "[1]", value: "nil", type: "NilClass" }
# ]
# }
Inherits
- Object
Methods
.from_rb_var
def self.from_rb_var(source, name: nil, depth: MAX_DEPTH, var_table: nil, limit: nil) -> Google::Cloud::Debugger::Breakpoint::Variable
Convert a Ruby variable into a Google::Cloud::Debugger::Breakpoint::Variable object. If a variable table is provided, it will store all the subsequently created compound variables into the variable table for sharing.
- source (Any) — Source Ruby variable to convert from
- name (String) (defaults to: nil) — Name of the varaible
- depth (Integer) (defaults to: MAX_DEPTH) — Number of levels to evaluate in compound variables. Default to MAX_DEPTH
- var_table (Breakpoint::VariableTable) (defaults to: nil) — A variable table to store shared compound variables. Optional.
- limit (Integer) (defaults to: nil) — Maximum number of bytes this conversion should take. This include nested compound member variables' conversions.
- (Google::Cloud::Debugger::Breakpoint::Variable) — Converted variable.
Simple variable conversion
x = 3.0 var = Google::Cloud::Debugger::Breakpoint::Variable.from_rb_var \ x, name: "x" var.name #=> "x" var.value #=> "3.0" var.type #=> "Float"
Hash conversion
hash = {a: 1.0, b: :two} var = Google::Cloud::Debugger::Breakpoint::Variable.from_rb_var \ hash, name: "hash" var.name #=> "hash" var.type #=> "Hash" var.members[0].name #=> "a" var.members[0].value #=> "1.0" var.members[0].type #=> "Float" var.members[1].name #=> "b" var.members[1].value #=> ":two" var.members[1].type #=> "Symbol"
Custom compound variable conversion
foo = Foo.new(a: 1.0, b: []) foo.inspect #=> "#<Foo:0xXXXXXX @a=1.0, @b=[]>" var = Google::Cloud::Debugger::Breakpoint::Variable.from_rb_var \ foo, name: "foo" var.name #=> "foo" var.type #=> "Foo" var.members[0].name #=> "@a" var.members[0].value #=> "1.0" var.members[0].type #=> "Float" var.members[1].name #=> "@b" var.members[1].value #=> "[]" var.members[1].type #=> "Array"
Use variable table for shared compound variables
hash = {a: 1.0} ary = [hash, hash] var_table = Google::Cloud::Debugger::Breakpoint::VariableTable.new var = Google::Cloud::Debugger::Breakpoint::Variable.from_rb_var \ ary, name: "ary", var_table: var_table var.name #=> "ary" var.var_table_index #=> 0 var_table[0].type #=> "Array" var_table[0].members[0].name #=> "[0]" var_table[0].members[0].var_table_index #=> 1 var_table[0].members[1].name #=> "[1]" var_table[0].members[1].var_table_index #=> 1 var_table[1].type #=> "Hash" var_table[1].members[0].name #=> "a" var_table[1].members[0].type #=> "Float" var_table[1].members[0].value #=> "1.0"
#payload_size
def payload_size() -> Integer
Calculate the bytesize of all the attributes and that of the member variables.
- (Integer) — The total payload size of this variable in bytes.
#set_error_state
def set_error_state(message, refers_to: StatusMessage::VARIABLE_VALUE)
Set this variable to an error state by setting the status field
#to_grpc
def to_grpc()
Exports the Variable to a Google::Cloud::Debugger::V2::Variable object.
#total_size
def total_size() -> Integer
Calculate the total bytesize of all the attributes and that of the member variables, plus references into other variables in the variable table.
- (Integer) — The total payload size of this variable in bytes.
Constants
MAX_DEPTH
value: 3
Max depth to convert on compound variables
MAX_MEMBERS
value: 1000
Max number of member variables to evaluate in compound variables
MAX_STRING_LENGTH
value: 500
Max length on variable inspect results. Truncate extra and replace
with ellipsis.