Module: ReMQ

Extended by:
ReMQ
Included in:
ReMQ
Defined in:
lib/ReMQ.rb,
lib/ReMQ/Queue.rb,
lib/ReMQ/Worker.rb

Defined Under Namespace

Classes: BadJobError, Queue, Worker

Constant Summary collapse

VERSION =
'0.0.2'

Instance Method Summary collapse

Instance Method Details

#is_valid_job?(job) ⇒ Boolean

Check if the job is a valid job.

Parameters:

  • job (Object)

Returns:

  • (Boolean)

Raises:



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/ReMQ.rb', line 51

def is_valid_job?(job)
  # check if is class
  if job.class != Class and Object.const_defined?(job)
    job = Object.const_get(job)
  elsif job.class != Class
    raise BadJobError, "#{job} is not a class"
    return false
  end
  # Ruby 1.9 uses a symbol for methods, while 1.8 uses strings
  method = RUBY_VERSION.gsub(/\.\d$/, '') == '1.9' ? :perform : 'perform'
  # check if it has the perform method
  unless job.methods.include?(method)
    raise BadJobError, "#{job} does not have a perform method"
    return false
  end
  return true
end

#normalize_queue_name(name) ⇒ String

Get a normalized ReMQ queue name.

Parameters:

  • name (String)

Returns:

  • (String)


21
22
23
# File 'lib/ReMQ.rb', line 21

def normalize_queue_name(name)
  "remq:#{name}"
end

#redisObject

Return the Redis connection or create a new connection.

Returns:

  • (Object)

    Redis conenction



42
43
44
# File 'lib/ReMQ.rb', line 42

def redis
  @redis ||= Redis.new
end

#set_redis(redis) ⇒ Object

Set a custom Redis connection.

Parameters:

  • redis (Object)


35
36
37
# File 'lib/ReMQ.rb', line 35

def set_redis(redis)
  @redis = redis
end

#set_redis_config(config) ⇒ Object

Set Redis connection options.

Parameters:

  • config (Hash)


28
29
30
# File 'lib/ReMQ.rb', line 28

def set_redis_config(config)
  @redis = Redis.new(config)
end