Module: Q
- Extended by:
- Helpers
- Defined in:
- lib/q.rb,
lib/q.rb,
lib/q/tasks.rb,
lib/q/errors.rb,
lib/q/helpers.rb,
lib/q/methods.rb,
lib/q/version.rb,
lib/q/methods/base.rb
Defined Under Namespace
Modules: Helpers, Methods, QueueTask
Classes: DuplicateQueueClassError, DuplicateQueueMethodError, InstanceQueueDefinitionError, MissingClassError, Queue, StandardError
Constant Summary
collapse
- DEFAULT_QUEUE =
->{ @env = :threaded; Q::Methods::Threaded }
- FALSEY_HASH =
Hash.new(false)
- Method =
Q::Methods
- VERSION =
"0.0.1"
Class Method Summary
collapse
Methods included from Helpers
camelize, const_defined_on?, proc_to_lambda, underscore
Class Method Details
.env ⇒ Object
28
29
30
31
32
33
|
# File 'lib/q.rb', line 28
def self.env
name = queue.to_s.split("::").last
@env ||= Q.underscore(name)
OpenStruct.new(FALSEY_HASH.merge("#{@env}?" => true))
end
|
.module_from_klass_name(name) ⇒ Object
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/q.rb', line 40
def self.module_from_klass_name(name)
unless defined?(Q::Methods.const_get(name))
require "q/methods/#{name}"
end
return Q::Methods.const_get(name)
rescue LoadError => e
raise LoadError, "Could not find queue: #{name}, expected to be defined in q/methods/#{name}\n" + e.message
rescue NameError => e
raise NameError, "Could not load queue: #{name}, expected to be defined in q/methods/#{name}\n" + e.message
end
|
.module_from_queue_name(queue_name) ⇒ Object
51
52
53
|
# File 'lib/q.rb', line 51
def self.module_from_queue_name(queue_name)
module_from_klass_name(camelize(queue_name))
end
|
.queue ⇒ Object
20
21
22
|
# File 'lib/q.rb', line 20
def self.queue
@queue_method || DEFAULT_QUEUE.call
end
|
.queue=(queue) ⇒ Object
66
67
68
69
70
71
72
73
|
# File 'lib/q.rb', line 66
def self.queue=(queue)
if queue.is_a?(Module)
@queue_method = queue
else
@env = queue
@queue_method = queue_lookup[queue].call
end
end
|
.queue_config {|@config_class| ... } ⇒ Object
75
76
77
78
79
|
# File 'lib/q.rb', line 75
def self.queue_config(&block)
@config_class ||= queue::QueueConfig.call
yield @config_class if block_given?
@config_class
end
|
.queue_lookup ⇒ Object
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/q.rb', line 55
def self.queue_lookup
@queue_lookup ||= Hash.new do |hash, key|
hash[key] = -> {
require "q/methods/#{key}"
const = Q.camelize(key)
::Q::Methods.const_get(const)
}
end
@queue_lookup
end
|
.reset_queue! ⇒ Object
35
36
37
38
|
# File 'lib/q.rb', line 35
def self.reset_queue!
@queue_method = nil
@env = nil
end
|
.setup {|_self| ... } ⇒ Object
24
25
26
|
# File 'lib/q.rb', line 24
def self.setup(&block)
yield self
end
|