module Ariadne::AttributesHelper
def merge_prefixed_attribute_hashes(*hashes, prefix:, plural_keys:)
def merge_prefixed_attribute_hashes(*hashes, prefix:, plural_keys:) {}.tap do |result| hashes.each do |hash| next unless hash prefix_hash = hash.delete(prefix) || {} prefix_hash.each_pair do |key, val| result[key] = if plural_keys.include?(key) [*(result[key] || "").split, val].join(" ").strip else val end end hash.delete_if do |key, val| key_s = key.to_s if key.start_with?("#{prefix}-") bare_key = key_s.sub("#{prefix}-", "").to_sym result[bare_key] = if plural_keys.include?(bare_key) [*(result[bare_key] || "").split, val].join(" ").strip else val end true else false end end end end end