class Embulk::FileInput
Public Class Methods
new(java_file_input)
click to toggle source
# File lib/embulk/file_input.rb, line 6 def initialize(java_file_input) @java_file_input = java_file_input @buffer = nil end
Public Instance Methods
close()
click to toggle source
# File lib/embulk/file_input.rb, line 79 def close @java_file_input.close end
each() { |buffer| ... }
click to toggle source
# File lib/embulk/file_input.rb, line 19 def each(&block) if @buffer yield @buffer @buffer = nil end while java_buffer = @java_file_input.poll buffer = Buffer.from_java(java_buffer) java_buffer.release yield buffer end end
next_file()
click to toggle source
# File lib/embulk/file_input.rb, line 11 def next_file if @java_file_input.nextFile return self else return nil end end
read(count=nil, dest=nil)
click to toggle source
# File lib/embulk/file_input.rb, line 32 def read(count=nil, dest=nil) if count == nil @buffer ||= Buffer.new while java_buffer = @java_file_input.poll @buffer << Buffer.from_java(java_buffer) java_buffer.release end return nil if @buffer.empty? && count != 0 if dest dest.replace(@buffer) else dest = @buffer end @buffer = nil else @buffer ||= Buffer.new until @buffer.size >= count java_buffer = @java_file_input.poll break unless java_buffer @buffer << Buffer.from_java(java_buffer) java_buffer.release end return nil if @buffer.empty? && count != 0 if @buffer.size <= count if dest dest.replace(@buffer) else dest = @buffer end @buffer = nil else data = @buffer.slice!(0, count) if dest dest.replace(data) else dest = data end end end return dest end
to_java()
click to toggle source
# File lib/embulk/file_input.rb, line 83 def to_java @java_file_input end