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

handle_uploads_for upload_options

### Included Modules

Ramaze::Traited

### Public Instance methods

handle_uploads_for(*args)

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

upload_options(options)

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]