Sha256: d544111e01bc691c5be4c1cacc21dd0497de1a64ef0d60b3a6cf580a259f23db
Contents?: true
Size: 1.17 KB
Versions: 3
Compression:
Stored size: 1.17 KB
Contents
module Gitlab # Wrapper class of file response. class FileResponse HEADER_CONTENT_DISPOSITION = 'Content-Disposition'.freeze attr_reader :filename def initialize(file) @file = file end # @return [bool] Always false def empty? false end # @return [Hash] A hash consisting of filename and io object def to_hash { filename: @filename, data: @file } end alias_method :to_h, :to_hash # @return [String] Formatted string with the class name, object id and filename. def inspect "#<#{self.class}:#{object_id} {filename: #{filename.inspect}}>" end def method_missing(name, *args, &block) if @file.respond_to?(name) @file.send(name, *args, &block) else super end end def respond_to_missing?(method_name, include_private = false) super || @file.respond_to?(method_name, include_private) end # Parse filename from the 'Content Disposition' header. def parse_headers!(headers) @filename = headers[HEADER_CONTENT_DISPOSITION].split('filename=')[1] @filename = @filename[1...-1] if @filename[0] == '"' # Unquote filenames end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gitlab-4.5.0 | lib/gitlab/file_response.rb |
gitlab-4.4.0 | lib/gitlab/file_response.rb |
gitlab-4.3.0 | lib/gitlab/file_response.rb |