Class: Solis::HasMany

Inherits:
Graphiti::Sideload::HasMany
  • Object
show all
Defined in:
lib/solis/sparql_adaptor.rb

Instance Method Summary collapse

Instance Method Details

#children_for(parent, map) ⇒ Object



331
332
333
# File 'lib/solis/sparql_adaptor.rb', line 331

def children_for(parent, map)
  map.values.flatten
end

#inverse_filterObject



316
317
318
# File 'lib/solis/sparql_adaptor.rb', line 316

def inverse_filter
  @inverse_filter || foreign_key
end


335
336
337
# File 'lib/solis/sparql_adaptor.rb', line 335

def link_filter(parents)
  {inverse_filter => parent_filter(parents)}
end

#load_params(parents, query) ⇒ Object



320
321
322
323
324
325
326
327
328
329
# File 'lib/solis/sparql_adaptor.rb', line 320

def load_params(parents, query)
  query.hash.tap do |hash|
    hash[:filter] ||= {}
    unless hash[:filter].include?(:id)
      all_ids = parents.map{|m| m.instance_variable_get("@#{query.association_name.to_s}")}.flatten.map{|m| m.instance_variable_get("@#{primary_key}")}.uniq.compact.join(',')

      hash[:filter].merge!({primary_key => all_ids})
    end
  end
end