class BingAdsRubySdk::Postprocessors::Snakize

Public Class Methods

new(params) click to toggle source
# File lib/bing_ads_ruby_sdk/postprocessors/snakize.rb, line 7
def initialize(params)
  @params = params
end

Public Instance Methods

call() click to toggle source
# File lib/bing_ads_ruby_sdk/postprocessors/snakize.rb, line 11
def call
  process(@params)
end

Private Instance Methods

process(obj) click to toggle source

NOTE: there is a potential for high memory usage here as we're using recursive method calling

# File lib/bing_ads_ruby_sdk/postprocessors/snakize.rb, line 18
def process(obj)
  return obj unless obj.is_a?(Hash)

  obj.each_with_object({}) do |(k, v), h|
    case v
    when Hash then v = process(v)
    when Array then v = v.map {|elt| process(elt) }
    end
    h[snakize(k)] = v
  end
end
snakize(string) click to toggle source
# File lib/bing_ads_ruby_sdk/postprocessors/snakize.rb, line 30
def snakize(string)
  BingAdsRubySdk::StringUtils.snakize(string)
end