Sha256: 9260ea4b8c72cf29adfadb3a860df4222e8e5ebaf52b68e8ded78e093a66d0c0

Contents?: true

Size: 563 Bytes

Versions: 25

Compression:

Stored size: 563 Bytes

Contents

module GraphitiGql
  module Loaders
    class HasMany < Many
      def assign(parent_records, proxy)
        records = proxy.data

        foreign_key = @sideload.foreign_key
        config = @sideload.resource.attributes[foreign_key]
        if config && config[:alias]
          foreign_key = config[:alias]
        end

        map = records.group_by { |record| record.send(foreign_key) }
        parent_records.each do |pr|
          data = [map[pr.send(@sideload.primary_key)] || [], proxy]
          fulfill(pr, data)
        end
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
graphiti_gql-0.2.38 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.37 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.36 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.35 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.34 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.33 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.32 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.31 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.30 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.29 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.28 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.27 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.26 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.25 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.24 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.23 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.22 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.21 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.20 lib/graphiti_gql/loaders/has_many.rb
graphiti_gql-0.2.19 lib/graphiti_gql/loaders/has_many.rb