Class: Spaceship::UploadFile
- Inherits:
-
Object
- Object
- Spaceship::UploadFile
- Defined in:
- spaceship/lib/spaceship/du/upload_file.rb
Overview
a wrapper around the concept of file required to make uploads to DU
Instance Attribute Summary collapse
-
#bytes ⇒ Object
readonly
Returns the value of attribute bytes.
-
#content_type ⇒ Object
readonly
Returns the value of attribute content_type.
-
#file_name ⇒ Object
readonly
Returns the value of attribute file_name.
-
#file_path ⇒ Object
readonly
Returns the value of attribute file_path.
-
#file_size ⇒ Object
readonly
Returns the value of attribute file_size.
Class Method Summary collapse
- .from_path(path) ⇒ Object
- .mac? ⇒ Boolean
-
.remove_alpha_channel(original) ⇒ Object
As things like screenshots and app icon shouldn't contain the alpha channel This will copy the image into the temporary directory to remove the alpha channel there.
Instance Attribute Details
#bytes ⇒ Object (readonly)
Returns the value of attribute bytes.
13 14 15 |
# File 'spaceship/lib/spaceship/du/upload_file.rb', line 13 def bytes @bytes end |
#content_type ⇒ Object (readonly)
Returns the value of attribute content_type.
12 13 14 |
# File 'spaceship/lib/spaceship/du/upload_file.rb', line 12 def content_type @content_type end |
#file_name ⇒ Object (readonly)
Returns the value of attribute file_name.
10 11 12 |
# File 'spaceship/lib/spaceship/du/upload_file.rb', line 10 def file_name @file_name end |
#file_path ⇒ Object (readonly)
Returns the value of attribute file_path.
9 10 11 |
# File 'spaceship/lib/spaceship/du/upload_file.rb', line 9 def file_path @file_path end |
#file_size ⇒ Object (readonly)
Returns the value of attribute file_size.
11 12 13 |
# File 'spaceship/lib/spaceship/du/upload_file.rb', line 11 def file_size @file_size end |
Class Method Details
.from_path(path) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'spaceship/lib/spaceship/du/upload_file.rb', line 16 def from_path(path) raise "Image must exists at path: #{path}" unless File.exist?(path) # md5 from original. keeping track of md5s allows to skip previously uploaded in deliver content_md5 = Spaceship::Utilities.md5digest(path) path = remove_alpha_channel(path) if File.extname(path).casecmp('.png').zero? content_type = Utilities.content_type(path) self.new( file_path: path, file_name: 'ftl_' + content_md5 + '_' + File.basename(path), file_size: File.size(path), content_type: content_type, bytes: File.read(path) ) end |
.mac? ⇒ Boolean
46 47 48 |
# File 'spaceship/lib/spaceship/du/upload_file.rb', line 46 def mac? (/darwin/ =~ RUBY_PLATFORM) != nil end |
.remove_alpha_channel(original) ⇒ Object
As things like screenshots and app icon shouldn't contain the alpha channel This will copy the image into the temporary directory to remove the alpha channel there. That's done to not edit the original image.
36 37 38 39 40 41 42 43 44 |
# File 'spaceship/lib/spaceship/du/upload_file.rb', line 36 def remove_alpha_channel(original) path = File.join(Dir.tmpdir, "#{Digest::MD5.hexdigest(original)}.png") FileUtils.copy(original, path) if mac? # sips is only available on macOS `sips -s format bmp '#{path}' &> /dev/null` # &> /dev/null since there is warning because of the extension `sips -s format png '#{path}'` end return path end |