Class: GithubbishAssets::Packer::MultiFile

Inherits:
Object
  • Object
show all
Defined in:
lib/githubbish_assets/packer.rb

Overview

A class that emulates continuous reading from a bunch of files

Instance Method Summary collapse

Constructor Details

#initialize(files) ⇒ MultiFile

Returns a new instance of MultiFile.



76
77
78
79
# File 'lib/githubbish_assets/packer.rb', line 76

def initialize(files)
  @files = files
  @file = nil
end

Instance Method Details

#closeObject



95
96
97
# File 'lib/githubbish_assets/packer.rb', line 95

def close
  @file && @file.close
end

#read(size) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/githubbish_assets/packer.rb', line 81

def read(size)
  while true
    if @file
      res = @file.read(size)

      return res if res
    end

    return if @files.empty?

    @file = File.open(@files.shift, 'r')
  end
end