Class: Elasticsearch::Model::Extensions::OuterDocumentUpdating::Update::Default
Class Method Summary
collapse
Instance Method Summary
collapse
#initialize
Class Method Details
.applicable_to?(klass) ⇒ Boolean
25
26
27
|
# File 'lib/elasticsearch/model/extensions/outer_document_updating.rb', line 25
def self.applicable_to?(klass)
true
end
|
Instance Method Details
#apply ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/elasticsearch/model/extensions/outer_document_updating.rb', line 29
def apply
parent_class = @parent_class
child_class = @child_class
only_if = -> r { true }
puts "Parent: #{@parent_class.name}"
puts "Child: #{@child_class.name}"
records_to_update_documents = begin
child_to_parent_path = Elasticsearch::Model::Extensions::OuterDocumentUpdating::ClassMethods::AssociationTraversal.shortest_path(from: child_class, to: parent_class)
-> updated_record {
if child_to_parent_path.nil?
warn "Couldn't automatically determine the path from the class `#{child_class}` to `#{parent_class}." +
"Use `partially_updates_document_of parent_class, records_to_update_documents: -> child { ... }` to specify it."
end
child_to_parent_path.inject(updated_record) { |d, parent_association| d.send parent_association }
}
end
[only_if, records_to_update_documents]
end
|