Sha256: cb7c4072dec48606f6ddeeb91b05f345aaca58f57cfcd2d7e6703f21aa52719d

Contents?: true

Size: 520 Bytes

Versions: 4

Compression:

Stored size: 520 Bytes

Contents

module GraphitiGql
  module Loaders
    class PolymorphicHasMany < Many
      def assign(ids, proxy)
        records = proxy.data
        ids.each do |id|
          corresponding = records.select do |record|
            record.send("#{@sideload.polymorphic_as}_type") == id[:"#{@sideload.polymorphic_as}_type"] &&
              record.send(@sideload.foreign_key) == id[@sideload.foreign_key]
          end
          data = [corresponding || [], proxy]
          fulfill(id, data)
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
graphiti_gql-0.2.2 lib/graphiti_gql/loaders/polymorphic_has_many.rb
graphiti_gql-0.2.1 lib/graphiti_gql/loaders/polymorphic_has_many.rb
graphiti_gql-0.2.0 lib/graphiti_gql/loaders/polymorphic_has_many.rb
graphiti_gql-0.1.0 lib/graphiti_gql/loaders/polymorphic_has_many.rb