šŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →
Socket
Sign inDemoInstall
Socket

mongoid_paperclip_queue

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongoid_paperclip_queue

0.1.4
Rubygems
Version published
Maintainers
1
Created
Source

h1. Mongoid::PaperclipQueue

Mongoid::PaperclipQueue is a complete rewrite of "Delayed_Paperclip":http://github.com/jstorimer/delayed_paperclip and "Mongoid_Paperclip":http://github.com/meskyanichi/mongoid-paperclip to allow those of us using Mongoid to process "Paperclip":http://github.com/thoughtbot/paperclip attachments in the background using "Resque":http://github.com/defunkt/resque.

h2. Why?

We all know how important it is to keep our page load times down, so this allows us to dump all that processing to Resque to perform in the background.

h2. Installation

Install the gem:

sudo gem install mongoid_paperclip_queue

Or for Rails 3, to your Gemfile:

gem 'mongoid_paperclip_queue'

h3. Dependencies:

  • Mongoid
  • Paperclip
  • Resque

You don't need to include paperclip in your Gemfile.

h2. Usage

In your model:


  class User 
    include Mongoid::Document
    extend Mongoid::PaperclipQueue

    has_queued_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }

  end

  # You can also embed attachments, too.
  class Team 
	include Mongoid::Document

	embeds_many :users, :cascade_callbacks => true # this will save all the attachments when Team is saved.
  end

  

Paperclip will behave exactly "like they describe":http://github.com/thoughtbot/paperclip.

h3. Resque

Make sure that you have "Resque":http://github.com/defunkt/resque up and running. The jobs will be dispatched to the :paperclip queue, so you can correctly dispatch your worker. Configure resque and your workers exactly as you would otherwise.

h3. Detect the processing state

Processing detection is built in. We take advantage of Redis since it should already be running, and we can keep our #{attachment_name}_processing field out of our MongoDB and into a more temporary key store. The temporary image url isn't saved anywhere, so you'll have to specify that on your own, but it's easy to use:


  @user = User.find(1)
  url = @user.avatar.processing? ? "/images/missing.png" : @user.avatar.url

h2. Contributing

Checkout out CONTRIBUTING for more info.

FAQs

Package last updated on 17 May 2012

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts