Class: Elsmore::Document

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url, parent = nil) ⇒ Document

Returns a new instance of Document.



8
9
10
# File 'lib/elsmore/document.rb', line 8

def initialize url, parent = nil
  self.url = Elsmore::Url.new(url, parent)
end

Instance Attribute Details

#emitterObject

Returns the value of attribute emitter.



6
7
8
# File 'lib/elsmore/document.rb', line 6

def emitter
  @emitter
end

#urlObject

Returns the value of attribute url.



6
7
8
# File 'lib/elsmore/document.rb', line 6

def url
  @url
end

Instance Method Details

#dataObject



22
23
24
# File 'lib/elsmore/document.rb', line 22

def data
  doc.to_xml
end

#docObject



38
39
40
41
42
43
# File 'lib/elsmore/document.rb', line 38

def doc
  @doc ||= begin
    html = HTTParty.get(url.canonical_url)
    Oga.parse_html(html)
  end
end


12
13
14
15
16
17
18
19
20
# File 'lib/elsmore/document.rb', line 12

def links
  @links ||= begin
    doc.xpath('//a').map do |element|
      element.attribute('href')
    end.compact.map(&:value).map do |href|
      Elsmore::Document.new(href, url)
    end.compact
  end
end

#rewriteObject



32
33
34
35
36
# File 'lib/elsmore/document.rb', line 32

def rewrite
  rewriter = Elsmore::Rewriter.new(self)
  rewriter.emitter = emitter
  rewriter.rewrite
end

#write!Object



26
27
28
29
30
# File 'lib/elsmore/document.rb', line 26

def write!
  writer = Elsmore::Writer.new(self)
  writer.emitter = emitter
  writer.write
end