class GroongaLog::Input

Public Class Methods

new(path) click to toggle source
# File lib/groonga-log/input.rb, line 38
def initialize(path)
  @path = path
  @path = @path.to_path if @path.respond_to?(:to_path)

  case File.extname(@path).downcase
  when ".gz"
    @raw = Zlib::GzipReader.open(@path)
  when ".zip"
    @raw = Archive::Zip.new(@path, :r)
  else
    @raw = File.new(@path)
  end
end
open(path) { |input| ... } click to toggle source
# File lib/groonga-log/input.rb, line 24
def open(path)
  input = new(path)
  if block_given?
    begin
      yield(input)
    ensure
      input.close unless input.closed?
    end
  else
    input
  end
end

Public Instance Methods

close() click to toggle source
# File lib/groonga-log/input.rb, line 66
def close
  @raw.close
end
closed?() click to toggle source
# File lib/groonga-log/input.rb, line 70
def closed?
  @raw.closed?
end
each_line(&block) click to toggle source
# File lib/groonga-log/input.rb, line 52
def each_line(&block)
  return to_enum(__method__) unless block_given?

  case @raw
  when Archive::Zip
    @raw.each do |entry|
      next unless entry.file?
      entry.file_data.each_line(&block)
    end
  else
    @raw.each_line(&block)
  end
end