Module: AgUiProtocol::Util
- Extended by:
- T::Sig
- Defined in:
- lib/ag_ui_protocol/util.rb
Overview
Utility methods for encoding events.
Class Method Summary collapse
- .camelize_key(key) ⇒ Object
- .deep_compact(value) ⇒ Object
- .deep_transform_keys_to_camel(value) ⇒ Object
- .dump_json(value) ⇒ Object
- .normalize_value(value) ⇒ Object
Class Method Details
.camelize_key(key) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/ag_ui_protocol/util.rb', line 27 def camelize_key(key) str = key.to_s parts = str.split("_") return str if parts.length <= 1 parts[0] + parts[1..].map { |p| p.empty? ? "" : (p[0].upcase + p[1..]) }.join end |
.deep_compact(value) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/ag_ui_protocol/util.rb', line 38 def deep_compact(value) value = normalize_value(value) case value when Hash value.transform_values { |v| deep_compact(v) unless v.nil? }.tap(&:compact!) when Array tmp1 = value.map { |v| deep_compact(v) } tmp1.reject!(&:nil?) tmp1 else value end end |
.deep_transform_keys_to_camel(value) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/ag_ui_protocol/util.rb', line 55 def deep_transform_keys_to_camel(value) value = normalize_value(value) case value when Hash value.each_with_object({}) do |(k, v), acc| acc[camelize_key(k)] = deep_transform_keys_to_camel(v) end when Array value.map { |v| deep_transform_keys_to_camel(v) } else value end end |
.dump_json(value) ⇒ Object
72 73 74 |
# File 'lib/ag_ui_protocol/util.rb', line 72 def dump_json(value) JSON.generate(value) end |
.normalize_value(value) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/ag_ui_protocol/util.rb', line 16 def normalize_value(value) if value.is_a?(AgUiProtocol::Core::Types::Model) value.to_h else value end end |