Class: ParallelCucumber::Helper::Queue

Inherits:
Object
  • Object
show all
Defined in:
lib/parallel_cucumber/helper/queue.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue_connection_params, append = '') ⇒ Queue

Returns a new instance of Queue.



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/parallel_cucumber/helper/queue.rb', line 8

def initialize(queue_connection_params, append = '')
  # queue_connection_params:
  #   `url--[name]`
  # url:
  #   TCP connection: `redis://[password]@[hostname]:[port]/[db]` (password, port and database are optional),
  #   unix socket connection: `unix://[path to Redis socket]`.
  # name:
  #   queue name, default is `queue`
  url, name = queue_connection_params
  @redis = Redis.new(url: url)
  @name = name + append
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/parallel_cucumber/helper/queue.rb', line 6

def name
  @name
end

Instance Method Details

#dequeueObject



25
26
27
# File 'lib/parallel_cucumber/helper/queue.rb', line 25

def dequeue
  @redis.rpop(@name)
end

#empty?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/parallel_cucumber/helper/queue.rb', line 33

def empty?
  length.zero?
end

#enqueue(elements) ⇒ Object



21
22
23
# File 'lib/parallel_cucumber/helper/queue.rb', line 21

def enqueue(elements)
  @redis.lpush(@name, elements) unless elements.empty?
end

#lengthObject



29
30
31
# File 'lib/parallel_cucumber/helper/queue.rb', line 29

def length
  @redis.llen(@name)
end