Module: OmnifocusMcp::Tools::Definitions::KeyNormalizer
- Defined in:
- lib/omnifocus_mcp/tools/definitions/key_normalizer.rb
Class Method Summary collapse
Class Method Details
.snake_case_key(key) ⇒ Object
21 22 23 24 25 |
# File 'lib/omnifocus_mcp/tools/definitions/key_normalizer.rb', line 21 def snake_case_key(key) return key unless key.is_a?(Symbol) || key.is_a?(String) key.to_s.gsub(/([a-z\d])([A-Z])/, '\1_\2').downcase.to_sym end |
.snake_keys(obj, deep: false) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/omnifocus_mcp/tools/definitions/key_normalizer.rb', line 8 def snake_keys(obj, deep: false) case obj when Hash obj.each_with_object({}) do |(k, v), out| out[snake_case_key(k)] = deep ? snake_keys(v, deep: true) : v end when Array deep ? obj.map { |item| snake_keys(item, deep: true) } : obj else obj end end |