lib/rubyXL/objects/relationships.rb in rubyXL-3.3.19 vs lib/rubyXL/objects/relationships.rb in rubyXL-3.3.20

- old
+ new

@@ -68,11 +68,11 @@ end def load_related_files(zipdir_path, base_file_name) self.related_files = {} - @@debug +=2 if @@debug + @@debug += 2 if @@debug self.relationships.each { |rel| next if rel.target_mode == 'External' file_path = ::Pathname.new(rel.target) @@ -151,19 +151,25 @@ [] end def collect_related_objects res = related_objects.compact # Avoid tainting +related_objects+ array - res += generic_storage if generic_storage + res.concat(generic_storage) if generic_storage if relationship_container then relationship_container.owner = self res << relationship_container end - res.each { |o| res += o.collect_related_objects if o.respond_to?(:collect_related_objects) } + related = [] - res + res.each { |o| + next if o.respond_to?(:empty?) && o.empty? + related << o + related.concat(o.collect_related_objects) if o.respond_to?(:collect_related_objects) + } + + related end def load_relationships(dir_path, base_file_name) self.relationship_container = RubyXL::OOXMLRelationshipsFile.load_relationship_file(dir_path, base_file_name) return if relationship_container.nil?