module Filepreviews
@author Jonah Ruiz <jonah@pixelhipsters.com> Main module for FilePreviews.io library
@author Jonah Ruiz <jonah@pixelhipsters.com> Contains the version namespaced
Constants
- VERSION
Public Class Methods
Facade method to call API response @param url [String] image url to convert @param options [Hash<Symbol>] :metada and :image options @return [Filepreviews::Response] api response object
# File lib/filepreviews.rb, line 20 def self.generate(url, options = {}) request_hash = prepare_options(url, options) Filepreviews::HTTP.fetch(request_hash) end
Protected Class Methods
Default options to be used in API request @return [Hash<symbol>] default options
# File lib/filepreviews.rb, line 40 def self.default_options { debug: false, pages: '1' } end
Supported extracted (image) thumbnail formats @return [Array] thumbnail image file extensions
# File lib/filepreviews.rb, line 70 def self.image_formats %w(jpg jpeg png) end
Merges metadata options with supported formats @param options [Hash<symbol>] metadata and optional size
# File lib/filepreviews.rb, line 46 def self.merge_options(options) options.delete(:metadata) if options[:metadata] && options[:metadata].empty? if metadata_formats.include?(options[:metadata]) options.store(:metadata, options[:metadata]) end image = (options.fetch(:format) if image_formats.include?(options[:format])) options.store(:format, image) pages = (options.fetch(:pages, '1')) options.store(:pages, validate_pages(pages)) default_options.merge(options) end
Supported (image) formats in metadata @return [Array] image file extensions
# File lib/filepreviews.rb, line 64 def self.metadata_formats %w(exif ocr psd checksum multimedia) end
Prepares url and parameters for request
it calls defaults if nothing is provided
@param url [String] url @param params [Hash<symbol>] options @return [OpenStruct] all options as methods
# File lib/filepreviews.rb, line 32 def self.prepare_options(url, params) params = merge_options(params.fetch(:options) { default_options }) params.merge!(url: url) OpenStruct.new(params) end