Class: NasdaqScraper

Inherits:
StockIndex::BaseScraper show all
Defined in:
lib/stock_index/scrapers/nasdaq_scraper.rb

Instance Method Summary collapse

Methods inherited from StockIndex::BaseScraper

#build_wikipedia_link, #td, #wikipedia_position

Instance Method Details

#parse_rows(rows) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/stock_index/scrapers/nasdaq_scraper.rb', line 8

def parse_rows(rows)
  rows.inject([]) do |array, li|
    symbol = /.+\((\w+)\)/.match(li)[1]
    symbol = 'SWKS' if symbol == 'SKWS' # wikipedia erratum
    market = 'XNAS'
    if symbol && market
      component = StockIndex::Component.new(symbol, market, wikipedia(li))
      array << component.attributes
    end
    array
  end
end

#scrapeObject



3
4
5
6
# File 'lib/stock_index/scrapers/nasdaq_scraper.rb', line 3

def scrape
  doc = Nokogiri::HTML(open(StockIndex::INDICES['^NDX'][:url]))
  parse_rows doc.css('ol')[0].css('li')
end

#wikipedia(li) ⇒ Object



21
22
23
24
# File 'lib/stock_index/scrapers/nasdaq_scraper.rb', line 21

def wikipedia(li)
  wikipedia_path = li.css('a')[0].attributes['href'].value
  build_wikipedia_link(wikipedia_path)
end