Interface gem for the Imgur API
Ruby JavaScript
Switch branches/tags
Nothing to show
Pull request Compare This branch is 3 commits ahead of vanntastic:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
lib
spec
.document
.gitignore
Gemfile
Gemfile.lock
LICENSE
README.rdoc
Rakefile
VERSION
imgur.gemspec

README.rdoc

imgur

A simple ruby interface to the imgur image hosting service (imgur.com). This is a nice alternative to uploading images and not having to deal with RMagick bs.

Requirements

Examples

# Uploading an image to imgur from the filesystem

img = Imgur::API.new 'YOURAPIKEY'
uploaded_img = img.upload_file '/path/to/your/test.jpg'
# should return a hash like:
# => {"small_thumbnail"=>"http://imgur.com/NfuKFs.png", 
      "original_image"=>"http://imgur.com/NfuKF.png", 
      "large_thumbnail"=>"http://imgur.com/NfuKFl.png", 
      "delete_hash"=>"VAiPkk5NoQ", "imgur_page"=>"http://imgur.com/NfuKF", 
      "delete_page"=>"http://imgur.com/delete/VAiPkk5NoQ", 
      "image_hash"=>"NfuKF"}
# now you can do something like (if you're using rails):
<%= image_tag uploaded_img["small_thumbnail"] %>

Here's an example using Sinatra and Sequel, requires sinatra-more

Everything's included into one action for brevity, although you can probably extract the file functions to a helper for organizational purposes

post '/upload_photo' do 
  # let's assume we have this is in our form
  # <%= file_field_tag :photo %>
  file_name = params[:photo][:filename].split(".").first.gsub!(/[^a-z0-9]+/i, '_')
  file_type = params[:photo][:filename].split(".").last
  tmp_file_path = File.join(APP_ROOT,"public/images/tmp/#{file_name}.#{file_type}")
  FileUtils.mv params[:photo][:tempfile].path, tmp_file_path

  unless params["photo"].blank? || params["photo"].nil?
    @uploaded_img = IMGUR.upload_file tmp_file_path
  end

  @photo = Photo.new(:photo => @uploaded_img)
  @photo.save

  redirect '/results'
end

Here's an example using Rails

“`ruby class UploadController < ApplicationController

IMGUR_API_KEY = 'abc123' # this belongs in an initializer
def upload
  uploader = Imgur::API.new(IMGUR_API_KEY)
  @uploaded_image = uploader.upload_file(params[:image].tempfile.path)
end

end

# app/views/something/index.html.erb

<%= image_tag(@uploaded_image) %>

“`

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright © 2009 jdp. See LICENSE for details.