Class: Mechanize::DirectorySaver
- Defined in:
- lib/mechanize/directory_saver.rb
Overview
Constant Summary
Constants included from Parser
Instance Attribute Summary
Attributes inherited from Download
Attributes included from Parser
Class Method Summary collapse
-
.decode_filename? ⇒ Boolean
True if downloaded files should have their names decoded before saving.
-
.directory ⇒ Object
The directory downloaded files will be saved to.
-
.overwrite? ⇒ Boolean
Checks if
overwrite
parameter is set to true. -
.save_to(directory, options = {}) ⇒ Object
Creates a DirectorySaver subclass that will save responses to the given
directory
.
Instance Method Summary collapse
-
#initialize(uri = nil, response = nil, body_io = nil, code = nil) ⇒ DirectorySaver
constructor
Saves the
body_io
into the directory specified for this DirectorySaver by save_to.
Methods inherited from Download
Methods included from Parser
#extract_filename, #fill_header, #find_free_name
Constructor Details
#initialize(uri = nil, response = nil, body_io = nil, code = nil) ⇒ DirectorySaver
Saves the body_io
into the directory specified for this DirectorySaver by save_to. The filename is chosen by Mechanize::Parser#extract_filename.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/mechanize/directory_saver.rb', line 57 def initialize uri = nil, response = nil, body_io = nil, code = nil directory = self.class.directory raise Mechanize::Error, 'no save directory specified - ' \ 'use Mechanize::DirectorySaver.save_to ' \ 'and register the resulting class' unless directory super @filename = CGI.unescape(@filename) if self.class.decode_filename? path = File.join directory, @filename if self.class.overwrite? save! path else save path end end |
Class Method Details
.decode_filename? ⇒ Boolean
True if downloaded files should have their names decoded before saving.
42 43 44 |
# File 'lib/mechanize/directory_saver.rb', line 42 def self.decode_filename? @options[:decode_filename] end |
.directory ⇒ Object
The directory downloaded files will be saved to.
35 36 37 |
# File 'lib/mechanize/directory_saver.rb', line 35 def self.directory @directory end |
.overwrite? ⇒ Boolean
Checks if overwrite
parameter is set to true
49 50 51 |
# File 'lib/mechanize/directory_saver.rb', line 49 def self.overwrite? @options[:overwrite] end |
.save_to(directory, options = {}) ⇒ Object
Creates a DirectorySaver subclass that will save responses to the given directory
. If options
includes a decode_filename
value set to true
then the downloaded filename will be ran through CGI.unescape
before being saved. If options
includes a overwrite
value set to true
then downloaded file will be overwritten if two files with the same names exist.
23 24 25 26 27 28 29 30 |
# File 'lib/mechanize/directory_saver.rb', line 23 def self.save_to directory, = {} directory = File. directory Class.new self do |klass| klass.instance_variable_set :@directory, directory klass.instance_variable_set :@options, end end |