Method: Pureapi::Controller#merge_includes

Defined in:
lib/pureapi/controller.rb

#merge_includes(target, source) ⇒ Object



590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
# File 'lib/pureapi/controller.rb', line 590

def merge_includes(target ,source)
  result = {}

  target.each do |k, v|
    result[k] = {}

    if v.is_a?(Hash) && source[k].is_a?(Hash)
      if source[k][:only].is_a?(Array)
        result[k][:only] = v[:only].is_a?(Array) ? (v[:only] & source[k][:only]) : source[k][:only]
      end

      if v[:include].is_a?(Hash) && source[k][:include].is_a?(Hash)
        result[k][:include] = merge_includes(v[:include], source[k][:include])
      end
    end
  end

  result.delete_if { |k, v| v.blank? }
end