Sha256: b47a42da0bb2ab0c62a88586cca28f9774d5ff602777025cb458b893db932df5
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 KB
Contents
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) require 'httpclient' require 'httpthumbnailer-client/multipart_response' class HTTPThumbnailerClient class URIBuilder def initialize(service_uri, &block) @specs = [] @service_uri = service_uri instance_eval &block end def get "#{@service_uri}/#{@specs.join('/')}" end def self.thumbnail(&block) self.new('/thumbnail', &block).get end def thumbnail(method, width, height, format = 'JPEG', options = {}) args = [] args << method.to_s args << width.to_s args << height.to_s args << format.to_s options.keys.sort{|a, b| a.to_s <=> b.to_s}.each do |key| args << "#{key}:#{options[key]}" end @specs << args.join(',') end end class Thumbnail def initialize(mime_type, data) @mime_type = mime_type @data = data end attr_reader :mime_type, :data end def initialize(server_url) @server_url = server_url end def thumbnail(data, &block) uri = URIBuilder.thumbnail(&block) res = HTTPClient.new.request('PUT', "#{@server_url}#{uri}", nil, data) MultipartResponse.new(res.header['Content-Type'].last, res.body).parts.map do |part| Thumbnail.new(part.header['Content-Type'], part.body) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
httpthumbnailer-client-0.0.1 | lib/httpthumbnailer-client.rb |