Skip to content

Commit

Permalink
Remove colon from Hash key symbols
Browse files Browse the repository at this point in the history
  • Loading branch information
amomchilov committed Nov 14, 2024
1 parent 48d487d commit 79430da
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
13 changes: 10 additions & 3 deletions lib/debug/variable_inspector.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ def named_members_of(obj)
return [] if NaiveString === obj

members = case obj
when Hash then obj.map { |k, v| Variable.new(name: value_inspect(k), value: v) }
when Hash then obj.map { |k, v| Variable.new(name: inspect_hash_key(k), value: v) }
when Struct then obj.members.map { |name| Variable.new(name: name, value: obj[name]) }
when String
members = [
Expand Down Expand Up @@ -54,6 +54,15 @@ def value_inspect(obj, short: true)
self.class.value_inspect(obj, short: short)
end

def inspect_hash_key(key)
# Special-case for symbols so debugger UIs render `a: 1` instead of two colons like `:a: 1`
return key.to_s if key.is_a?(Symbol)

value_inspect(key)
end

MAX_LENGTH = 180

def self.value_inspect(obj, short: true)
# TODO: max length should be configurable?
str = LimitedPP.safe_inspect obj, short: short, max_length: MAX_LENGTH
Expand All @@ -65,8 +74,6 @@ def self.value_inspect(obj, short: true)
end
end

MAX_LENGTH = 180

# TODO: Replace with Reflection helpers once they are merged
# https://github.com/ruby/debug/pull/1002
M_INSTANCE_VARIABLES = method(:instance_variables).unbind
Expand Down
2 changes: 1 addition & 1 deletion test/debug/variable_inspector_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def test_named_members_of_hash

expected = [
Variable.internal(name: '#class', value: Hash),
Variable.new(name: ':sym', value: "has Symbol key"),
Variable.new(name: 'sym', value: "has Symbol key"),
Variable.new(name: '"str"', value: "has String key"),
Variable.new(name: '1', value: "has Integer key"),
]
Expand Down

0 comments on commit 79430da

Please sign in to comment.