Module Ramaze::Helper::Upload::ClassMethods
In: lib/ramaze/helper/upload.rb

Helper class methods. Methods in this module will be available in your controller class (not your controller instance).

Methods

Included Modules

Ramaze::Traited

Public Instance methods

This method will activate automatic handling of uploaded files for specified actions in the controller.

@example

  class MyController < Ramaze::Controller

    # Use upload helper
    helper :upload

    # Handle all uploads for the foo and bar actions
    handle_uploads_for :foo, :bar

    # Handle all uploads for the baz action and uploads beginning with
    # 'up' for the qux action
    handle_uploads_for :baz, [:qux, /^up.*/]
  end

@param *args An arbitrary long list of arguments with action names

 (and optionally patterns) that should handle file uploads
 automatically. Each argument can either be a symbol or a two-element
 array consisting of a symbol and a reqexp.

@see handle_all_uploads @see Ramaze::Helper::Upload#get_uploaded_files

Sets options for file uploads in the controller.

@example

  # This controller will handle all file uploads automatically.
  # All uploaded files are saved automatically in '/uploads/myapp'
  # and old files are overwritten.
  #
  class MyController < Ramaze::Controller

    # Use upload helper
    helper :upload

    handle_all_uploads
    upload_options :allow_overwrite => true,
                   :autosave => true,
                   :default_upload_dir => '/uploads/myapp',
                   :unlink_tempfile => true
  end

  # This controller will handle all file uploads automatically.
  # All uploaded files are saved automatically, but the exact location
  # is depending on a session variable. Old files are overwritten.
  #
  class MyController2 < Ramaze::Controller

    # Use upload helper
    helper :upload

    # Proc to use for save directory calculation
    calculate_dir = lambda { File.join('/uploads', session['user']) }

    handle_all_uploads
    upload_options :allow_overwrite => true,
                   :autosave => true,
                   :default_upload_dir => calculate_dir,
                   :unlink_tempfile => true
  end

@param [Hash] options Options controlling how file uploads

 are handled.

@option options [Boolean] :allow_overwrite If set to true, uploaded

 files are allowed to overwrite existing ones. This option is set to
 *false* by default.

@option options [Boolean] :autosave If set to true,

 Ramaze::Helper::Upload::UploadedFile#save will be called on all
 matched file uploads
 automatically. You can use this option to automatically save files
 at a preset location, but please note that you will need to set the
 :default_upload_dir (and possibly :allow_overwrite) options as well
 in order for this to work correctly. This option is set to *false*
 by default.

@option options [String|Proc] :default_upload_dir If set to a string

 (representing a path in the file system) this option will allow you
 to save uploaded files without specifying a path. If you intend to
 call Ramaze::Helper::Upload::UploadedFile#save with a path you don't
 need to set this option at all. If you need to delay the calculation
 of the directory, you can also set this option to a proc. The proc
 should accept zero arguments and return a string. This comes in handy
 when you want to use different directory paths for different users
 etc.  This option is set to *nil* by default.

@option options [Boolean] :unlink_tempfile If set to true, this

  option will automatically unlink the temporary file created by Rack
  immediately after Ramaze::Helper::Upload::UploadedFile#save is done
  saving the uploaded file. This is probably not needed in most cases,
  but if you don't want to expose your uploaded files in a shared
  tempdir longer than necessary this option might be for you. This
  option is set to *false* by default.

@see Ramaze::Helper::Upload::UploadedFile#initialize @see Ramaze::Helper::Upload::UploadedFile#save

[Validate]