Class: GitTrend::Scraper
- Inherits:
-
Object
- Object
- GitTrend::Scraper
- Defined in:
- lib/git_trend/scraper.rb
Constant Summary collapse
- BASE_HOST =
"https://github.com"
- BASE_URL =
"#{BASE_HOST}/trending"
Instance Method Summary collapse
- #get(language = nil, since = nil, number = nil) ⇒ Object
-
#initialize ⇒ Scraper
constructor
A new instance of Scraper.
- #languages ⇒ Object
Constructor Details
#initialize ⇒ Scraper
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 |
#languages ⇒ Object
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 |