module CoreExt::Hash::RiotLolApi

Public Instance Methods

lol_symbolize() click to toggle source
# File lib/core_ext/hash/riot_lol_api.rb, line 7
def lol_symbolize
  new_hash = {}
  each do |k, v|
    if v.is_a? Array
      populate_new_hash_from_array(new_hash: new_hash, key: k, values: v)
    elsif v.is_a? ::Hash
      new_hash[k.lol_symbolize] = initalize_lol_object(name_class: classify(k), values: v)
    else
      new_hash[k.lol_symbolize] = v
    end
  end
  new_hash
end

Private Instance Methods

classify(name) click to toggle source
# File lib/core_ext/hash/riot_lol_api.rb, line 43
def classify(name)
  name.singularize.camelize
end
initalize_lol_object(name_class:, values:) click to toggle source
# File lib/core_ext/hash/riot_lol_api.rb, line 39
def initalize_lol_object(name_class:, values:)
  Object.const_get("::RiotLolApi::Model::#{name_class}").new(values.lol_symbolize)
end
populate_new_hash_from_array(new_hash:, key:, values:) click to toggle source
# File lib/core_ext/hash/riot_lol_api.rb, line 23
def populate_new_hash_from_array(new_hash:, key:, values:)
  key_sym = key.lol_symbolize
  new_hash[key_sym] = []
  return populate_new_hash_with_lol_object(new_hash: new_hash, key: key, values: values) if values.first.is_a? ::Hash
  values.each do |tab|
    new_hash[key_sym] << tab
  end
end
populate_new_hash_with_lol_object(new_hash:, key:, values:) click to toggle source
# File lib/core_ext/hash/riot_lol_api.rb, line 32
def populate_new_hash_with_lol_object(new_hash:, key:, values:)
  name_class = classify key
  values.each do |tab|
    new_hash[key.lol_symbolize] << initalize_lol_object(name_class: name_class, values: tab)
  end
end