Sha256: 6ef77ca47d6b70f8457f0734141f6164e646c13dcdd0ed823364a618428e94cc
Contents?: true
Size: 1.69 KB
Versions: 3
Compression:
Stored size: 1.69 KB
Contents
require "forwardable" module RelatonBib class HitCollection extend Forwardable def_delegators :@array, :<<, :[], :first, :empty?, :any?, :size, :each, :each_slice # @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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
relaton-bib-1.5.0 | lib/relaton_bib/hit_collection.rb |
relaton-bib-1.5.pre1 | lib/relaton_bib/hit_collection.rb |
relaton-bib-1.5.pre | lib/relaton_bib/hit_collection.rb |