class Arknmax::Reader
Constants
- DIGIT
- DIGIT_LINE
Attributes
container[RW]
io[R]
max_digits_line[R]
size_limit[R]
Public Class Methods
new(size_limit, io: STDIN, max_digits_line: 1000)
click to toggle source
# File lib/arknmax/reader.rb, line 12 def initialize(size_limit, io: STDIN, max_digits_line: 1000) @size_limit = size_limit @io = io @max_digits_line = max_digits_line @container = Arknmax::Heap.new(size_limit) end
Public Instance Methods
perform()
click to toggle source
# File lib/arknmax/reader.rb, line 19 def perform while (line = io.read(max_digits_line)) finish_digits_line!(line) if end_with_num_char?(line) line.scan(DIGIT_LINE) { |n| container << n.to_i } end container end
Private Instance Methods
end_with_num_char?(string)
click to toggle source
# File lib/arknmax/reader.rb, line 31 def end_with_num_char?(string) !(string[-1] =~ DIGIT).nil? end
finish_digits_line!(string)
click to toggle source
# File lib/arknmax/reader.rb, line 35 def finish_digits_line!(string) return if string.nil? string << io.readbyte while end_with_num_char?(string) && !io.eof? end