require 'ostruct' require 'cgi' module Filepreviews # @author Jonah Ruiz # Utility module with helper methods module Utils def self.included(base) base.extend(self) end # Extracts metadata parameters # @param metadata [Array] image formats # @return [String] metadata url parameters def extract_metadata(metadata) metadata.join(',') end # Validates page parameters # @param pages [Array] page parameters # @return [String] page thumbnail parameters def validate_pages(pages) if !!(pages =~ /,/) || !!(pages =~ /-/) || pages.eql?('all') || pages =~ /\d/ pages end end # Extracts the desired image size attributes # @param size [Hash] desired image :width and :height # @return [String] combined width and height size for http request def extract_size(size) unless size.nil? size = OpenStruct.new(size) "#{size.width}x#{size.height}" end end # Returns processed options and url as parameters # @param params [Hash] :url and :metadata # @return [Hash] processed parameters for http request def process_params(params) parameters = { url: CGI.unescape(params.url) } if params.metadata parameters[:metadata] = [extract_metadata(params.metadata)] end parameters end end end