Class: Traject::MockReader
- Inherits:
-
Object
- Object
- Traject::MockReader
- Defined in:
- lib/traject/mock_reader.rb
Overview
require ‘traject/mock_writer’ require ‘traject/mock_reader’
settings do
store "reader_class_name", "Traject::MockReader"
store "writer_class_name", "Traject::MockWriter"
store "mock_reader.limit", 4_000 # default is 10_000
end
Instance Attribute Summary collapse
-
#limit ⇒ Object
Returns the value of attribute limit.
Instance Method Summary collapse
- #each ⇒ Object
-
#initialize(input_stream, settings = {}) ⇒ MockReader
constructor
A new instance of MockReader.
Constructor Details
#initialize(input_stream, settings = {}) ⇒ MockReader
Returns a new instance of MockReader.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/traject/mock_reader.rb', line 28 def initialize(input_stream, settings = {}) @records = [] @limit = settings["mock_reader.limit"] || 10_000 this_file_iter = File.open(__FILE__).each_line while true line = this_file_iter.next break if line =~ /^\_\_END\_\_/ end begin while true json = this_file_iter.next next unless json =~ /\S/ @records << MARC::Record.new_from_hash(JSON.parse(json)) end rescue StopIteration end end |
Instance Attribute Details
#limit ⇒ Object
Returns the value of attribute limit.
24 25 26 |
# File 'lib/traject/mock_reader.rb', line 24 def limit @limit end |
Instance Method Details
#each ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/traject/mock_reader.rb', line 51 def each unless block_given? enum_for(:each) else size = @records.size @limit.times do |i| yield @records[i % size] end end end |