Skip to content

Commit 7e3c8f1

Browse files
committed
Remove colon from Hash key symbols
1 parent 6837459 commit 7e3c8f1

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

lib/debug/variable_inspector.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ def named_members_of(obj)
1919

2020
members = case obj
2121
when Hash then obj.map { |k, v| Variable.new(name: value_inspect(k), value: v) }
22+
when Hash then obj.map { |k, v| Variable.new(name: inspect_hash_key(k), value: v) }
2223
when Struct then obj.members.map { |name| Variable.new(name: name, value: obj[name]) }
2324
when String
2425
members = [
@@ -50,6 +51,13 @@ def named_members_of(obj)
5051

5152
private
5253

54+
def inspect_hash_key(key)
55+
# Special-case for symbols so debugger UIs render `a: 1` instead of two colons like `:a: 1`
56+
return key.to_s if key.is_a?(Symbol)
57+
58+
value_inspect(key)
59+
end
60+
5361
def value_inspect(obj, short: true)
5462
self.class.value_inspect(obj, short: short)
5563
end

test/debug/variable_inspector_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def test_named_members_of_hash
4848

4949
expected = [
5050
Variable.internal(name: '#class', value: Hash),
51-
Variable.new(name: ':sym', value: "has Symbol key"),
51+
Variable.new(name: 'sym', value: "has Symbol key"),
5252
Variable.new(name: '"str"', value: "has String key"),
5353
Variable.new(name: '1', value: "has Integer key"),
5454
]

0 commit comments

Comments
 (0)