From 1c0df514e4cd57ef895982570f942c108aaf0f52 Mon Sep 17 00:00:00 2001 From: "Marcos G. Zimmermann" Date: Tue, 20 Aug 2024 17:17:53 -0300 Subject: [PATCH] feat: do not create new array when values are already a doc instances --- lib/esse/lazy_document_header.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/esse/lazy_document_header.rb b/lib/esse/lazy_document_header.rb index 972b572..0dbcfee 100644 --- a/lib/esse/lazy_document_header.rb +++ b/lib/esse/lazy_document_header.rb @@ -6,8 +6,13 @@ class LazyDocumentHeader ACCEPTABLE_DOC_TYPES = [nil, '_doc', 'doc'].freeze def self.coerce_each(values) + values = Esse::ArrayUtils.wrap(values) + return values if values.all? do |value| + ACCEPTABLE_CLASSES.any? { |klass| value.is_a?(klass) } + end + arr = [] - Esse::ArrayUtils.wrap(values).flatten.map do |value| + values.flatten.map do |value| instance = coerce(value) arr << instance if instance && !instance.id.nil? end