Class: Solis::HasMany
- Inherits:
-
Graphiti::Sideload::HasMany
- Object
- Graphiti::Sideload::HasMany
- Solis::HasMany
- Defined in:
- lib/solis/sparql_adaptor.rb
Instance Method Summary collapse
- #children_for(parent, map) ⇒ Object
- #inverse_filter ⇒ Object
- #link_filter(parents) ⇒ Object
- #load_params(parents, query) ⇒ Object
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_filter ⇒ Object
316 317 318 |
# File 'lib/solis/sparql_adaptor.rb', line 316 def inverse_filter @inverse_filter || foreign_key end |
#link_filter(parents) ⇒ Object
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 |