You’re desperate. Your legacy code-generation code outputs a Hash using hash#to_s
. You’ve flouted many Rubocop rules to get to where you are. Suddenly, it gets too much. You search the Web for a pretty-print function that you want: a Rubocop-friendly Hash pretty-printer.
Empty-handed, you cough up blood, while a police car’s red-blue lights flicker in through the blinds of your run-down office.
With tired fingers, you type out something like:
This file contains 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
# @param hash [Hash] | |
# @return [String] rubocop-friendly pretty-printed hash | |
def pretty_print_hash(hash) | |
with_19_keys = hash.to_s.gsub(/:(\w+)=>/, '\1: ') | |
with_whitespace = with_19_keys.sub(/^{/, '{ ').sub(/}$/,' }') | |
with_single_quotes = with_whitespace.gsub(/: \"([^"']*)\"/, ': \'\1\'') | |
end |
Then, you faint, blessed sleep converges on you and envelopes you in a colorless void.