Sha256: 1c2eb958449fc84c2e67b8b47c92b0267aac48664ceee56f3dc7dac5bcd42a7d

Contents?: true

Size: 842 Bytes

Versions: 3

Compression:

Stored size: 842 Bytes

Contents

require 'traject/alephsequential_reader/version'
require 'marc_alephsequential'
require 'zlib'
require 'yell'

module Traject
  class AlephSequentialReader
    include Enumerable

    def initialize(input_stream, settings)
      @settings = settings
      @input_stream = input_stream
      if settings['command_line.filename'] =~ /\.gz$/ && !(@input_stream.is_a?  Zlib::GzipReader)
        @input_stream = Zlib::GzipReader.new(@input_stream, :external_encoding => "UTF-8")
      end
  
      @internal_reader = MARC::AlephSequential::Reader.new(@input_stream)
    end

    def logger
      @logger ||= (settings[:logger] || Yell.new(STDERR, :level => "gt.fatal")) # null logger)
    end    

    def each
      unless block_given?
        return enum_for(:each)
      end
  
      @internal_reader.each {|r| yield r}
    end

  end
end
  
  

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
traject_alephsequential_reader-1.0.1 lib/traject/alephsequential_reader.rb
traject_alephsequential_reader-1.0.0 lib/traject/alephsequential_reader.rb
traject_alephsequential_reader-0.1.2 lib/traject/alephsequential_reader.rb