/usr/lib/ruby/1.8/mechanize/file_saver.rb is in libwww-mechanize-ruby1.8 1.0.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | class Mechanize
# = Synopsis
# This is a pluggable parser that automatically saves every file
# it encounters. It saves the files as a tree, reflecting the
# host and file path.
#
# == Example to save all PDF's
# require 'rubygems'
# require 'mechanize'
#
# agent = Mechanize.new
# agent.pluggable_parser.pdf = Mechanize::FileSaver
# agent.get('http://example.com/foo.pdf')
#
class FileSaver < File
attr_reader :filename
def initialize(uri=nil, response=nil, body=nil, code=nil)
super(uri, response, body, code)
path = uri.path.empty? ? 'index.html' : uri.path.gsub(/^[\/]*/, '')
path += 'index.html' if path =~ /\/$/
split_path = path.split(/\//)
filename = split_path.length > 0 ? split_path.pop : 'index.html'
joined_path = split_path.join(::File::SEPARATOR)
path = if joined_path.empty?
uri.host
else
"#{uri.host}#{::File::SEPARATOR}#{joined_path}"
end
@filename = "#{path}#{::File::SEPARATOR}#{filename}"
FileUtils.mkdir_p(path)
save_as(@filename)
end
end
end
|