module Jimgur

Constants

VERSION

Attributes

configuration[RW]

Public Class Methods

configure() { |configuration| ... } click to toggle source
# File lib/jimgur.rb, line 8
def self.configure
  self.configuration ||= Configuration.new
  yield(configuration)
end
upload(image) click to toggle source
# File lib/jimgur.rb, line 21
def self.upload image
  api_uri = URI.parse("https://api.imgur.com")
  api_public_key = "Client-ID #{self.configuration.client_id}"
  endpoints = {
    image: "3/image",
  }
  img_name = image.tempfile
  img = File.open(img_name, "r") {|io| io.read}

  conn = Faraday.new(api_uri) do |f|
    f.request :url_encoded
    f.request :multipart
    f.response :logger
    f.adapter :net_http
  end
  conn.headers["Authorization"] = api_public_key

  form_data = {
    image: Base64.encode64(img)
  }
  response = conn.post(endpoints[:image], form_data)

  result = JSON.parse(response.body)
  result
end