Class: Scraper
- Inherits:
-
Object
show all
- Extended by:
- UIExtras
- Defined in:
- lib/ruby_doc/data/scrapers.rb
Instance Attribute Summary
Attributes included from UIExtras
#counter
Class Method Summary
collapse
Methods included from UIExtras
alphaGets, browseControl, browseError, browseMenu, choiceControl, choiceError, cyanH, docControl, docError, docMenu, loading_animation, loading_message, main, mainControl, mainError, mainMenu, methControl, methError, methListControl, methListError, methMenu, outputD, prompt, randQ, redH, searchControl, searchError, sepL, sepR, signature, viewMenu, wrapped
Class Method Details
.docUniq(name) ⇒ Object
65
66
67
|
# File 'lib/ruby_doc/data/scrapers.rb', line 65
def self.docUniq(name)
Doc.all.none?{|doc| doc.name == name}
end
|
.loadDocPage(doc) ⇒ Object
DocPage====================
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/ruby_doc/data/scrapers.rb', line 26
def self.loadDocPage(doc)
doc_page = Nokogiri::HTML(open(doc.url))
doc_page.search(".description p")[0..1].search("em").remove
container = doc_page.search("#related")
container.search("li").search(".related_header").remove
doc.description = parse(doc_page.search(".description p")[0..1].text)
doc.type = doc_page.search(".title_prefix span").text
container.search("li").map do |m|
name = m.search("a").text
url = prefix + m.search("a").attribute("href").value
method = Meth.new(name, url) if methUniq(name)
doc.methods << name if methsUniq(doc.methods, name)
end
doc
end
|
.loadDOCS ⇒ Object
Load Docs===================
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/ruby_doc/data/scrapers.rb', line 7
def self.loadDOCS
@counter = 0
loading_message
html = Nokogiri::HTML(open("https://apidock.com/ruby/browse"))
container = html.search(".hover_list")
container.search("a").each do |doc|
name = doc.text
url = prefix + doc.attribute("href").value
Doc.new(name, url) if docUniq(name)
@counter += 1
loading_animation
end
end
|
.loadMethPage(meth) ⇒ Object
MethPage====================
50
51
52
53
54
55
56
57
|
# File 'lib/ruby_doc/data/scrapers.rb', line 50
def self.loadMethPage(meth)
url = Nokogiri::HTML(open(meth.url))
url.search(".description p")[0..1].search("em").remove
meth.description = parse(url.search(".description p")[0..1].text)
meth.type = url.search(".title_prefix span").text
end
|
.methsUniq(col, name) ⇒ Object
73
74
75
|
# File 'lib/ruby_doc/data/scrapers.rb', line 73
def self.methsUniq(col,name)
col.none?{|meth| meth == name}
end
|
.methUniq(name) ⇒ Object
69
70
71
|
# File 'lib/ruby_doc/data/scrapers.rb', line 69
def self.methUniq(name)
Meth.all.none?{|meth| meth.name == name}
end
|
.parse(des) ⇒ Object
61
62
63
|
# File 'lib/ruby_doc/data/scrapers.rb', line 61
def self.parse(des)
des.gsub(/[\n]/, ' ').gsub(' ',' ')
end
|
.prefix ⇒ Object
77
78
79
|
# File 'lib/ruby_doc/data/scrapers.rb', line 77
def self.prefix
"https://apidock.com"
end
|