lib/asciidoctor-bibliography/bibliographer.rb in asciidoctor-bibliography-0.4.4 vs lib/asciidoctor-bibliography/bibliographer.rb in asciidoctor-bibliography-0.5.0

- old
+ new

@@ -9,18 +9,21 @@ def initialize @options = {} @citations = [] @indices = [] @database = nil - @occurring_keys = [] + @occurring_keys = Hash.new([]) end def add_citation(citation) citations << citation - @occurring_keys.concat(citation.citation_items.map(&:key)).uniq! + citation.citation_items.group_by(&:target).each do |target, citation_items| + @occurring_keys[target] ||= [] + @occurring_keys[target].concat(citation_items.map(&:key)).uniq! + end end - def appearance_index_of(id) - @occurring_keys.index(id) + 1 + def appearance_index_of(target, id) + @occurring_keys[target].index(id) + 1 end end end