class Volt::DataTransformer
Public Class Methods
transform(data) { |data| ... }
click to toggle source
Takes a hash or array, and nested map's over the values, yielding to the block the value. The return value from the block replaces the previous value. NOTE: This does not yield hashes or arrays.
# File lib/volt/utils/data_transformer.rb, line 12 def self.transform(data, &block) if data.is_a?(Hash) data.map do |key, value| key = transform(key, &block) value = transform(value, &block) [key, value] end.to_h elsif data.is_a?(Array) data.map do |value| transform(value, &block) end else # yield to the trasnformer yield(data) end end
transform_keys(data) { |key| ... }
click to toggle source
Like transform, except it only yields keys.
# File lib/volt/utils/data_transformer.rb, line 30 def self.transform_keys(data, &block) if data.is_a?(Hash) data.map do |key, value| key = transform_keys(key, &block) value = transform_keys(value, &block) # map the key [yield(key), value] end.to_h elsif data.is_a?(Array) data.map do |value| transform_keys(value, &block) end else # no mapping data end end