Sha256: a8a0068fd22824ce80f65c73c0c32f8c99ea0a027a17d5cca0d15c56d73ceaf8

Contents?: true

Size: 455 Bytes

Versions: 6

Compression:

Stored size: 455 Bytes

Contents

class Graphiti::Sideload::HasMany < Graphiti::Sideload
  def type
    :has_many
  end

  def load_params(parents, query)
    query.hash.tap do |hash|
      hash[:filter] ||= {}
      hash[:filter].merge!(base_filter(parents))
    end
  end

  def base_filter(parents)
    { foreign_key => ids_for_parents(parents).join(',') }
  end

  def assign_each(parent, children)
    children.select { |c| c.send(foreign_key) == parent.send(primary_key) }
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
graphiti-1.0.alpha.11 lib/graphiti/sideload/has_many.rb
graphiti-1.0.alpha.10 lib/graphiti/sideload/has_many.rb
graphiti-1.0.alpha.9 lib/graphiti/sideload/has_many.rb
graphiti-1.0.alpha.8 lib/graphiti/sideload/has_many.rb
graphiti-1.0.alpha.7 lib/graphiti/sideload/has_many.rb
graphiti-1.0.alpha.6 lib/graphiti/sideload/has_many.rb