Class: Message::Job

Inherits:
Object
  • Object
show all
Defined in:
lib/message/job.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue, &processor) ⇒ Job

Returns a new instance of Job.



19
20
21
22
# File 'lib/message/job.rb', line 19

def initialize(queue, &processor)
  @queue = queue
  @processor = processor || lambda {|msg| msg}
end

Class Method Details

.filter(name, &block) ⇒ Object



10
11
12
# File 'lib/message/job.rb', line 10

def filter(name, &block)
  filters << [name, block]
end

.filtersObject



6
7
8
# File 'lib/message/job.rb', line 6

def filters
  @filters ||= Filters.new
end

.resetObject



14
15
16
# File 'lib/message/job.rb', line 14

def reset
  @filters = nil
end

Instance Method Details

#enq(msg) ⇒ Object Also known as: <<



32
33
34
# File 'lib/message/job.rb', line 32

def enq(msg)
  chain(:enq, lambda {|msg| @queue.enq(msg)}).call(msg)
end

#nameObject



24
25
26
# File 'lib/message/job.rb', line 24

def name
  @queue.name
end

#process(size = 1) ⇒ Object



37
38
39
40
41
42
43
44
# File 'lib/message/job.rb', line 37

def process(size=1)
  deq = lambda do |size|
    @queue.deq(size) do |msg|
      chain(:process, @processor).call(msg)
    end
  end
  chain(:deq, deq).call(size)
end

#sizeObject



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

def size
  @queue.size
end