Sha256: badfb6153f4237010a1594651a1f3530a7a0fd5451937576d7a018c720d1a822
Contents?: true
Size: 1.72 KB
Versions: 78
Compression:
Stored size: 1.72 KB
Contents
require "forwardable" module RelatonBib class HitCollection extend Forwardable def_delegators :@array, :<<, :[], :first, :empty?, :any?, :size, :each, :each_slice, :reduce # @return [TrueClass, FalseClass] attr_reader :fetched # @return [String] attr_reader :text # @return [String] attr_reader :year # @param text [String] reference to search def initialize(text, year = nil) @array = [] @text = text @year = year @fetched = false end # @return [RelatonIso::HitCollection] def fetch workers = WorkersPool.new 4 workers.worker(&:fetch) each do |hit| workers << hit end workers.end workers.result @fetched = true self end # @param opts [Hash] # @option opts [Nokogiri::XML::Builder] :builder XML builder # @option opts [Boolean] :bibdata # @option opts [String, Symbol] :lang language # @return [String] XML def to_xml(**opts) builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml| xml.documents do @array.each do |hit| hit.fetch hit.to_xml **opts.merge(builder: xml) end end end builder.to_xml end def select(&block) me = deep_dup array_dup = instance_variable_get(:@array).deep_dup me.instance_variable_set(:@array, array_dup) array_dup.select!(&block) me end def reduce!(sum, &block) @array = @array.reduce sum, &block self end def to_s inspect end # @return [String] def inspect "<#{self.class}:#{format('%#.14x', object_id << 1)} @ref=#{@text} @fetched=#{@fetched}>" end end end
Version data entries
78 entries across 78 versions & 1 rubygems