lib/resque/helpers.rb
require 'multi_json'
# OkJson won't work because it doesn't serialize symbols
# in the same way yajl and json do.
if MultiJson.respond_to?(:adapter)
raise "Please install the yajl-ruby or json gem" if MultiJson.adapter.to_s == 'MultiJson::Adapters::OkJson'
elsif MultiJson.respond_to?(:engine)
raise "Please install the yajl-ruby or json gem" if MultiJson.engine.to_s == 'MultiJson::Engines::OkJson'
end
module Resque
# Methods used by various classes in Resque.
module Helpers
class DecodeException < StandardError; end
# Direct access to the Redis instance.
def redis
# No infinite recursions, please.
# Some external libraries depend on Resque::Helpers being mixed into
# Resque, but this method causes recursions. If we have a super method,
# assume it is canonical. (see #1150)
return super if defined?(super)
Resque.redis
end
# Given a Ruby object, returns a string suitable for storage in a
# queue.
def encode(object)
Resque.encode(object)
end
# Given a string, returns a Ruby object.
def decode(object)
Resque.decode(object)
end
# Given a word with dashes, returns a camel cased version of it.
def classify(dashed_word)
Resque.classify(dashed_word)
end
# Tries to find a constant with the name specified in the argument string
def constantize(camel_cased_word)
Resque.constantize(camel_cased_word)
end
end
end