Class: Scruber::QueueAdapters::Memory

Inherits:
AbstractAdapter show all
Defined in:
lib/scruber/queue_adapters/memory.rb

Defined Under Namespace

Classes: Page

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Memory

Returns a new instance of Memory.



24
25
26
27
28
29
# File 'lib/scruber/queue_adapters/memory.rb', line 24

def initialize(options={})
  super(options)
  @queue = []
  @downloaded_pages = []
  @error_pages = []
end

Instance Attribute Details

#error_pagesObject (readonly)

Returns the value of attribute error_pages.



4
5
6
# File 'lib/scruber/queue_adapters/memory.rb', line 4

def error_pages
  @error_pages
end

Instance Method Details

#add_downloaded(page) ⇒ Object



60
61
62
# File 'lib/scruber/queue_adapters/memory.rb', line 60

def add_downloaded(page)
  @downloaded_pages.push page
end

#add_error_page(page) ⇒ Object



64
65
66
# File 'lib/scruber/queue_adapters/memory.rb', line 64

def add_error_page(page)
  @error_pages.push page
end

#delete(page) ⇒ Object



72
73
74
75
76
# File 'lib/scruber/queue_adapters/memory.rb', line 72

def delete(page)
  @queue -= [page]
  @downloaded_pages -= [page]
  @error_pages -= [page]
end

#fetch_downloaded(count = nil) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/scruber/queue_adapters/memory.rb', line 44

def fetch_downloaded(count=nil)
  if count.nil?
    @downloaded_pages.shift
  else
    @downloaded_pages.shift(count)
  end
end

#fetch_pending(count = nil) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/scruber/queue_adapters/memory.rb', line 52

def fetch_pending(count=nil)
  if count.nil?
    @queue.shift
  else
    @queue.shift(count)
  end
end

#has_work?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/scruber/queue_adapters/memory.rb', line 68

def has_work?
  @queue.count > 0 || @downloaded_pages.count > 0
end

#initialized?Boolean

Returns:

  • (Boolean)


78
79
80
# File 'lib/scruber/queue_adapters/memory.rb', line 78

def initialized?
  @queue.present? || @downloaded_pages.present? || @error_pages.present?
end

#push(url_or_page, options = {}) ⇒ Object Also known as: add



31
32
33
34
35
36
37
# File 'lib/scruber/queue_adapters/memory.rb', line 31

def push(url_or_page, options={})
  if url_or_page.is_a?(Page)
    @queue.push url_or_page
  else
    @queue.push Page.new(self, url_or_page, options)
  end
end

#queue_sizeObject



40
41
42
# File 'lib/scruber/queue_adapters/memory.rb', line 40

def queue_size
  @queue.count
end