Class: RelatonIso::HitCollection

Inherits:
RelatonBib::HitCollection
  • Object
show all
Defined in:
lib/relaton_iso/hit_collection.rb

Overview

Page of hit collection.

Instance Method Summary collapse

Constructor Details

#initialize(text) ⇒ HitCollection

Returns a new instance of HitCollection.

Parameters:

  • text (String)

    reference to search



12
13
14
15
# File 'lib/relaton_iso/hit_collection.rb', line 12

def initialize(text)
  super
  @array = text.match?(/^ISO[\s\/](?:TC\s184\/SC\s?4|IEC\sDIR\s(?:\d|IEC|JTC))/) ? fetch_github : fetch_iso
end

Instance Method Details

#to_all_parts(lang = nil) ⇒ RelatonIsoBib::IsoBibliographicItem?

Parameters:

  • lang (String, NilClass) (defaults to: nil)

Returns:

  • (RelatonIsoBib::IsoBibliographicItem, nil)


19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/relaton_iso/hit_collection.rb', line 19

def to_all_parts(lang = nil) # rubocop:disable Metrics/CyclomaticComplexity
  # parts = @array.reject { |h| h.hit["docPart"]&.empty? }
  hit = @array.min_by { |h| h.pubid.part }
  return @array.first&.fetch lang unless hit

  bibitem = hit.fetch(lang)
  all_parts_item = bibitem.to_all_parts
  @array.reject { |h| h.hit[:uuid] == hit.hit[:uuid] }.each do |hi|
    isobib = RelatonIsoBib::IsoBibliographicItem.new(
      formattedref: RelatonBib::FormattedRef.new(content: hi.pubid.to_s),
    )
    all_parts_item.relation << RelatonBib::DocumentRelation.new(
      type: "instance", bibitem: isobib,
    )
  end
  all_parts_item
end