Module: Musa::Extension::InspectNice

Defined in:
lib/musa-dsl/core-ext/inspect-nice.rb

Overview

Note:

These refinements must be activated with using Musa::Extension::InspectNice

Refinements that provide more readable inspect/to_s output for Hash and Rational.

These refinements improve readability of log output and debugging, especially important when working with musical data that heavily uses Rationals for timing and Hashes for event parameters.

Changes

  • Hash: Compact syntax with symbol keys shown as key: value
  • Rational: Musical-friendly format like 3+1/4r instead of (13/4)
  • Configurable: Rational display can switch between simple and detailed modes

Use Cases

  • Improving log readability in musical applications
  • Debugging DSL expressions with cleaner output
  • Displaying musical time values (bars, durations) naturally

Methods Added

Hash

  • Hash#inspect - Compact, readable inspect output with symbol-key shorthand
  • Hash#to_s - Aliases to_s to inspect for consistency

Rational (singleton class)

Rational

  • Rational#inspect - Musical-friendly inspect output for Rational numbers
  • Rational#to_s - String representation controlled by Rational.to_s_as_inspect

Examples:

Hash formatting

using Musa::Extension::InspectNice

{ pitch: 60, velocity: 100 }.inspect
# => "{ pitch: 60, velocity: 100 }"
# Instead of: "{:pitch=>60, :velocity=>100}"

Rational formatting (detailed mode)

using Musa::Extension::InspectNice

(5/4r).inspect       # => "1+1/4r"
(3/2r).inspect       # => "1+1/2r"
(2/1r).inspect       # => "2r"
(-3/4r).inspect      # => "-3/4r"

Rational formatting (simple mode)

using Musa::Extension::InspectNice

Rational.to_s_as_inspect = false
(5/4r).to_s          # => "5/4"
(2/1r).to_s          # => "2"

See Also: