Sha256: 47ca19840b8a39c9e8f2534779ba63ee4d06845dba0a154543e5d80d88f47c8e

Contents?: true

Size: 981 Bytes

Versions: 20

Compression:

Stored size: 981 Bytes

Contents

# frozen_string_literal: true

module RelatonNist
  # Hit.
  class Hit < RelatonBib::Hit
    attr_writer :fetch

    # Parse page.
    # @return [RelatonNist::NistBliographicItem]
    def fetch
      @fetch ||= Scrapper.parse_page @hit
    end

    # @return [Iteger]
    def sort_value # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
      @sort_value ||= begin
        sort_phrase = [hit[:serie], hit[:code], hit[:title]].join " "
        corr = hit_collection&.text&.split&.map do |w|
          if w =~ /\w+/ &&
              sort_phrase =~ Regexp.new(Regexp.escape(w), Regexp::IGNORECASE)
            1
          else 0
          end
        end&.sum.to_i
        corr + case hit[:status]
               when "final" then 4
               when "withdrawn" then 3
               when "draft" then 2
               when "draft (obsolete)" then 1
               else 0
               end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
relaton-nist-1.12.3 lib/relaton_nist/hit.rb
relaton-nist-1.12.2 lib/relaton_nist/hit.rb
relaton-nist-1.12.1 lib/relaton_nist/hit.rb
relaton-nist-1.12.0 lib/relaton_nist/hit.rb
relaton-nist-1.11.4 lib/relaton_nist/hit.rb
relaton-nist-1.11.3 lib/relaton_nist/hit.rb
relaton-nist-1.11.2 lib/relaton_nist/hit.rb
relaton-nist-1.11.1 lib/relaton_nist/hit.rb
relaton-nist-1.11.0 lib/relaton_nist/hit.rb
relaton-nist-1.10.2 lib/relaton_nist/hit.rb
relaton-nist-1.10.1 lib/relaton_nist/hit.rb
relaton-nist-1.10.0 lib/relaton_nist/hit.rb
relaton-nist-1.9.9 lib/relaton_nist/hit.rb
relaton-nist-1.9.8 lib/relaton_nist/hit.rb
relaton-nist-1.9.7 lib/relaton_nist/hit.rb
relaton-nist-1.9.6 lib/relaton_nist/hit.rb
relaton-nist-1.9.4 lib/relaton_nist/hit.rb
relaton-nist-1.9.3 lib/relaton_nist/hit.rb
relaton-nist-1.9.2 lib/relaton_nist/hit.rb
relaton-nist-1.9.1 lib/relaton_nist/hit.rb