Skip to content

Instantly share code, notes, and snippets.

View npj's full-sized avatar

Peter Brindisi npj

  • SoundCloud
  • Berlin
View GitHub Profile
# app/models/queue/base.rb
class Queue::Base
class << self
def enqueue(object, method, *args)
# ...to be continued
end
def perform
Resque.redis = Redis::Namespace.new(:resque, :redis => $redis)
# app/models/queue/high.rb
class Queue::High
@queue = :high
def self.enqueue(object, method, *args)
# ...to be continued
end
def self.perform
# ...to be continued
COUNT=3 QUEUE=high,normal,low rake resque:workers
# app/controller/posts_controller.rb
class PostsController < ApplicationController
before_filter :find_post
protected
def find_post
if id = Slug[params[:id]]
@post = Post.find(id)
Post.find_each { |post| Slug[post.id.to_s] = post.id.to_s }
# app/models/post.rb
class Post < ActiveRecord::Base
validate :ensure_slug_uniqueness
protected
# validate
def ensure_slug_uniqueness
class PostObserver
def after_save(post)
Slug[post.slug] = post.id
return true
end
def after_destroy(post)
Slug.destroy(post.id)
return true
end
class Slug
class << self
def [](slug)
redis.hget(hash, slug)
end
def []=(slug, id)
if old = self[slug]
redis.srem(set(old), slug)
class Slug
class << self
def [](slug)
redis.hget(hash, slug)
end
def []=(slug, id)
if old = self[slug]
redis.srem(set(old), slug)