app/models/concerns/blacklight/document/semantic_fields.rb in blacklight-6.11.0 vs app/models/concerns/blacklight/document/semantic_fields.rb in blacklight-6.11.1
- old
+ new
@@ -32,15 +32,17 @@
# to just take values from Solr stored fields.
# Extensions can over-ride this method to provide better/different lookup,
# but extensions should call super and modify hash returned, to avoid
# unintentionally erasing values provided by other extensions.
def to_semantic_values
- @semantic_value_hash ||= self.class.field_semantics.each_with_object(Hash.new([])) do |(key, field_name), hash|
- value = self[field_name]
+ @semantic_value_hash ||= self.class.field_semantics.each_with_object(Hash.new([])) do |(key, field_names), hash|
+ ##
+ # Handles single string field_name or an array of field_names
+ value = Array.wrap(field_names).map { |field_name| self[field_name] }.flatten.compact
# Make single and multi-values all arrays, so clients
# don't have to know.
- hash[key] = Array.wrap(value) unless value.nil?
+ hash[key] = value unless value.empty?
end
@semantic_value_hash ||= {}
end
end