memory 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 266bdfec74c35392a9c086c366df9bb6ab4fb5e1b162b98d3757f690fff09ded
4
- data.tar.gz: dffe8472314144b5786b5c445c6e01973114e9c3915d08aae0352fc1be76d329
3
+ metadata.gz: 8f828b63a1b278be8fa689f21263c6850971984cb3de7d5743ea86b855c2585e
4
+ data.tar.gz: 162f043ffe9de59804533cd33ba3140531d56b2e454ccf29cad5fe7698f92d56
5
5
  SHA512:
6
- metadata.gz: 4dcf3e65b4a7dee68b55919dc44004149a6febe80fde00d539d2b0361eea62dd47ab742006ef7ed75a2980829f0f58cbf1c341098ae394ac4ac3b7a4d816752b
7
- data.tar.gz: '038621f8d88603eb8b0b2a89fe13e4007bc100ce0c16c53febd9d02a6cf4fa3a00c6c3e967bfa8a6aa6507e3611266cae774dc016d330fe5b22d5322beee12e3'
6
+ metadata.gz: 48a61fdd8df592811bb547cff195b00b21abc470633c7c7706ae9f2d5fe29b069443c468268e27372e9d808bc0f72bf25b14f19cf86d9bfdc9d98bdbb8163fee
7
+ data.tar.gz: 464a4ff8bdf9ef59afc9a0a18057b67862d467be36659b7a9efe1f35fda0c80bb1d14f23a3f570c733a7a68da4cb67b4e8b7a357e5dd9ca8a15f86243b84227e
checksums.yaml.gz.sig CHANGED
Binary file
@@ -129,7 +129,7 @@ module Memory
129
129
  @title = title
130
130
  @metric = block
131
131
 
132
- @aggregates = Hash.new{|h,k| h[k] = Aggregate.new(k.inspect, &@metric)}
132
+ @aggregates = Hash.new{|h,k| h[k] = Aggregate.new(safe_key(k.inspect), &@metric)}
133
133
  end
134
134
 
135
135
  attr :title
@@ -169,10 +169,14 @@ module Memory
169
169
  # @parameter options [Hash | Nil] Optional JSON serialization options.
170
170
  # @returns [Hash] JSON-compatible representation.
171
171
  def as_json(options = nil)
172
- {
172
+ result = {
173
173
  title: @title,
174
- aggregates: @aggregates.map{|k, v| [k, v.as_json]}
174
+ aggregates: @aggregates.map{|k, v| [safe_key(k), v.as_json]}
175
175
  }
176
176
  end
177
+
178
+ private def safe_key(key)
179
+ key.to_s.encode(Encoding::UTF_8, invalid: :replace, undef: :replace)
180
+ end
177
181
  end
178
182
  end
@@ -7,5 +7,5 @@
7
7
  # Copyright, 2020-2025, by Samuel Williams.
8
8
 
9
9
  module Memory
10
- VERSION = "0.7.0"
10
+ VERSION = "0.7.1"
11
11
  end
data/readme.md CHANGED
@@ -94,6 +94,10 @@ end
94
94
 
95
95
  Please see the [project releases](https://socketry.github.io/memory/releases/index) for all releases.
96
96
 
97
+ ### v0.7.1
98
+
99
+ - Ensure aggregate keys are safe for serialization (and printing).
100
+
97
101
  ### v0.7.0
98
102
 
99
103
  - Add `Memory::Sampler#as_json` and `#to_json`.
data/releases.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Releases
2
2
 
3
+ ## v0.7.1
4
+
5
+ - Ensure aggregate keys are safe for serialization (and printing).
6
+
3
7
  ## v0.7.0
4
8
 
5
9
  - Add `Memory::Sampler#as_json` and `#to_json`.
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
metadata.gz.sig CHANGED
Binary file