Class: GitTrend::Scraper

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

Constant Summary collapse

BASE_HOST =
"https://github.com"
BASE_URL =
"#{BASE_HOST}/trending"

Instance Method Summary collapse

Constructor Details

#initializeScraper

Returns a new instance of Scraper.



9
10
11
12
13
14
# File 'lib/git_trend/scraper.rb', line 9

def initialize
  @agent = Mechanize.new
  @agent.user_agent = "git-trend #{VERSION}"
  proxy = URI.parse(ENV["http_proxy"]) if ENV["http_proxy"]
  @agent.set_proxy(proxy.host, proxy.port, proxy.user, proxy.password) if proxy
end

Instance Method Details

#get(language = nil, since = nil, number = nil) ⇒ Object



16
17
18
19
20
# File 'lib/git_trend/scraper.rb', line 16

def get(language = nil, since = nil, number = nil)
  page = @agent.get(generate_url(language, since))
  projects = generate_project(page)
  number ? projects[0...number] : projects
end

#languagesObject



22
23
24
25
26
27
# File 'lib/git_trend/scraper.rb', line 22

def languages
  page = @agent.get(BASE_URL)
  page.search('#select-menu-language .select-menu-list .select-menu-item-text').inject([]) do |languages, content|
    languages << content.text if content.text
  end
end