Module: Elasticsearch::Model::Extensions::PartialUpdating::ClassMethods

Defined in:
lib/elasticsearch/model/extensions/partial_updating.rb

Instance Method Summary collapse

Instance Method Details

#as_json_optionsObject



104
105
106
107
108
109
# File 'lib/elasticsearch/model/extensions/partial_updating.rb', line 104

def as_json_options
  @as_json_options ||= Elasticsearch::Model::Extensions::PartialUpdating.build_as_json_options(
    klass: self,
    props: self.mappings.to_hash[self.document_type.intern][:properties]
  )
end

#each_field_to_update_according_to_changed_fields(changed_fields) ⇒ Object



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/elasticsearch/model/extensions/partial_updating.rb', line 115

def each_field_to_update_according_to_changed_fields(changed_fields)
  root_mapping_properties = mappings.to_hash[:"#{document_type}"][:properties]

  changed_fields.each do |changed_field|
    field_mapping = root_mapping_properties[:"#{changed_field}"]

    next unless field_mapping

    yield changed_field
  end

  each_dependent_attribute_for(changed_fields.map(&:to_s)) do |a|
    a_sym = a.intern

    yield a_sym
  end
end

#fields_to_update_according_to_changed_fields(changed_fields) ⇒ Object



133
134
135
136
137
138
139
# File 'lib/elasticsearch/model/extensions/partial_updating.rb', line 133

def fields_to_update_according_to_changed_fields(changed_fields)
  fields = []
  each_field_to_update_according_to_changed_fields changed_fields do |field_to_update|
    fields << field_to_update
  end
  fields
end

#partial_as_json_options(field) ⇒ Object



111
112
113
# File 'lib/elasticsearch/model/extensions/partial_updating.rb', line 111

def partial_as_json_options(field)
  as_json_options[:include][field]
end