class MountableFileServer::Metadata

Attributes

content_type[R]
height[R]
size[R]
width[R]

Public Class Methods

for_path(path) click to toggle source
# File lib/mountable_file_server/metadata.rb, line 30
def self.for_path(path)
  parameters = {}

  parameters[:content_type] = `file --brief --mime-type #{path}`.strip
  parameters[:size] = File.size(path)

  if ['image/png', 'image/jpeg', 'image/gif', 'image/tiff'].include?(parameters[:content_type])
    dimensions = Dimensions.dimensions(path)
    parameters[:width] = dimensions[0]
    parameters[:height] = dimensions[1]
  end

  new(**parameters)
end
new(size:, content_type:, width: nil, height: nil) click to toggle source
# File lib/mountable_file_server/metadata.rb, line 7
def initialize(size:, content_type:, width: nil, height: nil)
  @size = size
  @content_type = content_type
  @width = width
  @height = height
end

Public Instance Methods

to_h() click to toggle source
# File lib/mountable_file_server/metadata.rb, line 14
def to_h
  hash = {
    size: size,
    content_type: content_type
  }

  if width && height
    hash = hash.merge({
      height: height,
      width: width
    })
  end

  hash
end