class SitemapGenerator::FileAdapter
Class for writing out data to a file.
Public Instance Methods
gzip(stream, data)
click to toggle source
Write ‘data` to a stream, passing the data through a GzipWriter to compress it.
# File lib/sitemap_generator/adapters/file_adapter.rb, line 31 def gzip(stream, data) gz = Zlib::GzipWriter.new(stream) gz.write data gz.close end
plain(stream, data)
click to toggle source
Write ‘data` to a stream as is.
# File lib/sitemap_generator/adapters/file_adapter.rb, line 38 def plain(stream, data) stream.write data stream.close end
write(location, raw_data)
click to toggle source
Write data to a file. @param location - File object giving the full path and file name of the file.
If the location specifies a directory(ies) which does not exist, the directory(ies) will be created for you. If the location path ends with `.gz` the data will be compressed prior to being written out. Otherwise the data will be written out unchanged.
@param raw_data - data to write to the file.
# File lib/sitemap_generator/adapters/file_adapter.rb, line 12 def write(location, raw_data) # Ensure that the directory exists dir = location.directory if !File.exists?(dir) FileUtils.mkdir_p(dir) elsif !File.directory?(dir) raise SitemapError.new("#{dir} should be a directory!") end stream = open(location.path, 'wb') if location.path.to_s =~ /.gz$/ gzip(stream, raw_data) else plain(stream, raw_data) end end