Module: ActionController::UploadedFile

Included in:
UploadedStringIO, UploadedTempfile
Defined in:
lib/action_controller/uploaded_file.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(object) ⇒ Object



10
11
12
13
14
15
# File 'lib/action_controller/uploaded_file.rb', line 10

def self.extended(object)
  object.class_eval do
    attr_accessor :original_path, :content_type
    alias_method :local_path, :path if method_defined?(:path)
  end
end

.included(base) ⇒ Object



3
4
5
6
7
8
# File 'lib/action_controller/uploaded_file.rb', line 3

def self.included(base)
  base.class_eval do
    attr_accessor :original_path, :content_type
    alias_method :local_path, :path if method_defined?(:path)
  end
end

Instance Method Details

#original_filenameObject

Take the basename of the upload’s original filename. This handles the full Windows paths given by Internet Explorer (and perhaps other broken user agents) without affecting those which give the lone filename. The Windows regexp is adapted from Perl’s File::Basename.



22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/action_controller/uploaded_file.rb', line 22

def original_filename
  unless defined? @original_filename
    @original_filename =
      unless original_path.blank?
        if original_path =~ /^(?:.*[:\\\/])?(.*)/m
          $1
        else
          File.basename original_path
        end
      end
  end
  @original_filename
end