Method: Parse::File#initialize
- Defined in:
- lib/parse/model/file.rb
#initialize(name, contents = nil, mime_type = nil) ⇒ File
The initializer to create a new file supports different inputs. If the first paramter is a string which starts with ‘http’, we then download the content of the file (and use the detected mime-type) to set the content and mime_type fields. If the first parameter is a hash, we assume it might be the Parse File hash format which contains url and name fields only. If the first paramter is a Parse::File, then we copy fields over Otherwise, creating a new file requires a name, the actual contents (usually from a File.open(“local.jpg”).read ) and the mime-type
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/parse/model/file.rb', line 80 def initialize(name, contents = nil, mime_type = nil) mime_type ||= Parse::File.default_mime_type if name.is_a?(String) && name.start_with?("http") #could be url string file = open(name) @contents = file.read @name = File.basename file.base_uri.to_s @mime_type = file.content_type elsif name.is_a?(Hash) self.attributes = name elsif name.is_a?(::File) @contents = contents || name.read @name = File.basename name.to_path elsif name.is_a?(Parse::File) @name = name.name @url = name.url else @name = name @contents = contents end if @name.blank? raise ArgumentError, "Invalid Parse::File initialization with name '#{@name}'" end @mime_type ||= mime_type end |