Class: Traject::AlephSequentialReader

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/traject/alephsequential_reader.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(input_stream, settings) ⇒ AlephSequentialReader

Returns a new instance of AlephSequentialReader.



13
14
15
16
17
18
19
20
21
# File 'lib/traject/alephsequential_reader.rb', line 13

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

Instance Attribute Details

#settingsObject

Returns the value of attribute settings.



9
10
11
# File 'lib/traject/alephsequential_reader.rb', line 9

def settings
  @settings
end

Instance Method Details

#eachObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/traject/alephsequential_reader.rb', line 27

def each
  unless block_given?
    return enum_for(:each)
  end

  @internal_reader.each do |r|
    if  r.is_a? MARC::AlephSequential::ErrorRecord
      logger.error(r.error)
      next
    else
      yield r
    end
  end
end

#loggerObject



23
24
25
# File 'lib/traject/alephsequential_reader.rb', line 23

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