Introduce SerializationDepth value object to replace primitive obsession (#13) get_serialization_depth_for_class was doing type-checking (is Integer or Hash?), key-coercion (symbol vs string), and falling back to a hardcoded default — all inline. Extract that logic into Observable::SerializationDepth#for_class, making Instrumenter unaware of how depth config is shaped. https://claude.ai/code/session_01KWZUse79XR68i6nGa8VgTu Co-authored-by: Claude <noreply@anthropic.com>#14
Open
johngallagher wants to merge 5 commits into
Open
Introduce SerializationDepth value object to replace primitive obsession (#13)
get_serialization_depth_for_class was doing type-checking (is Integer or Hash?),
key-coercion (symbol vs string), and falling back to a hardcoded default — all
inline. Extract that logic into Observable::SerializationDepth#for_class, making
Instrumenter unaware of how depth config is shaped.
https://claude.ai/code/session_01KWZUse79XR68i6nGa8VgTu
Co-authored-by: Claude <noreply@anthropic.com>#14johngallagher wants to merge 5 commits into
johngallagher wants to merge 5 commits into
Conversation
The if/else block assigned the same expression to span_name, function_name, and method_name_only, calling split(/[#.]/).last twice in the true branch. Replaced with two clear variables: method_name_only and qualified_name. https://claude.ai/code/session_01KWZUse79XR68i6nGa8VgTu Co-authored-by: Claude <noreply@anthropic.com>
Bare rescue catches all StandardError subclasses implicitly, but also signals unclear intent. Being explicit with 'rescue StandardError' makes the intent obvious and passes linting checks. Fixes 10 occurrences across instrumenter.rb (5) and structured_error.rb (5). https://claude.ai/code/session_01KWZUse79XR68i6nGa8VgTu Co-authored-by: Claude <noreply@anthropic.com>
The method was duplicating CYAN, BOLD, and RESET escape codes that are already defined as constants on Span. Replace the local variables with direct references to Span::CYAN, Span::BOLD, and Span::RESET. https://claude.ai/code/session_01KWZUse79XR68i6nGa8VgTu Co-authored-by: Claude <noreply@anthropic.com>
The four *_with_custom_depth methods (serialize_argument, serialize_hash, serialize_array, serialize_object) were near-identical copies of the base methods, differing only in whether max_depth was computed from config or passed explicitly. Unified into a single family using an optional max_depth parameter (nil = compute from config, value = use as-is and propagate down). Removes ~65 lines of duplicated code. https://claude.ai/code/session_01KWZUse79XR68i6nGa8VgTu Co-authored-by: Claude <noreply@anthropic.com>
…ion (#13) get_serialization_depth_for_class was doing type-checking (is Integer or Hash?), key-coercion (symbol vs string), and falling back to a hardcoded default — all inline. Extract that logic into Observable::SerializationDepth#for_class, making Instrumenter unaware of how depth config is shaped. https://claude.ai/code/session_01KWZUse79XR68i6nGa8VgTu Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.