Class: NethttpAb::RequestsQueue

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

Instance Method Summary collapse

Constructor Details

#initialize(url_array) ⇒ RequestsQueue

Returns a new instance of RequestsQueue.



3
4
5
6
7
8
9
# File 'lib/requests_queue.rb', line 3

def initialize(url_array)
  @urls_queue = url_array
  @locked_urls = []

  @num_of_requests = url_array.size
  @num_of_locked   = 0
end

Instance Method Details

#empty?Boolean

Returns:

  • (Boolean)


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

def empty?
  @num_of_requests == 0
end

#lock_next_requestObject



11
12
13
14
15
16
17
# File 'lib/requests_queue.rb', line 11

def lock_next_request
  if @num_of_requests > @num_of_locked
    @num_of_locked += 1
    @locked_urls << @urls_queue.shift
    @locked_urls.last
  end
end

#release_locked_request(url) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/requests_queue.rb', line 19

def release_locked_request(url)
  if @num_of_locked > 0
    @num_of_locked -= 1
    @locked_urls.delete_if{|u| u == url}
  end

  @num_of_requests -= 1 if @num_of_requests > 0
end