Class: Page

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/just_crawl/page.rb

Constant Summary collapse

ATTEMPTS =
3

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(register, url, source) ⇒ Page

Returns a new instance of Page.



12
13
14
15
16
17
18
# File 'lib/just_crawl/page.rb', line 12

def initialize(register, url, source)
  @register = register
  @url = url
  @source = source
  @attempts = 0
  @errors = nil
end

Instance Attribute Details

#errorObject (readonly)

Returns the value of attribute error.



8
9
10
# File 'lib/just_crawl/page.rb', line 8

def error
  @error
end

#registerObject (readonly)

Returns the value of attribute register.



8
9
10
# File 'lib/just_crawl/page.rb', line 8

def register
  @register
end

#sourceObject (readonly)

Returns the value of attribute source.



8
9
10
# File 'lib/just_crawl/page.rb', line 8

def source
  @source
end

#urlObject (readonly)

Returns the value of attribute url.



8
9
10
# File 'lib/just_crawl/page.rb', line 8

def url
  @url
end

Instance Method Details

#<=>(other) ⇒ Object



24
25
26
# File 'lib/just_crawl/page.rb', line 24

def <=>(other)
  relative_url <=> other.relative_url
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


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

def eql?(other)
  relative_url.eql?(other.relative_url)
end

#fatal(error) ⇒ Object



41
42
43
44
45
# File 'lib/just_crawl/page.rb', line 41

def fatal(error)
  puts "  Fatal - #{error}" if $VERBOSE
  @error = error
  @register.completed(self)
end

#hashObject



32
33
34
# File 'lib/just_crawl/page.rb', line 32

def hash
  relative_url.hash
end

#intermittent(error) ⇒ Object



47
48
49
50
51
52
53
54
55
56
# File 'lib/just_crawl/page.rb', line 47

def intermittent(error)
  puts "  Intermittent - #{error}" if $VERBOSE
  if @attempts >= ATTEMPTS
    @error = error
    @register.completed(self)
  else
    @attempts += 1
    @register.retry(self)
  end
end

#relative_urlObject



20
21
22
# File 'lib/just_crawl/page.rb', line 20

def relative_url
  @relative_url ||= URI.join('http://example.com', source, url).path
end

#successObject



36
37
38
39
# File 'lib/just_crawl/page.rb', line 36

def success
  @error = nil
  @register.completed(self)
end

#to_sObject



58
59
60
# File 'lib/just_crawl/page.rb', line 58

def to_s
  "#{url} found on #{source} - #{error || 'OK'}"
end