class BbcNewsCliGem::Scraper

Attributes

raw_page[R]

Public Class Methods

new(link) click to toggle source
# File lib/bbc_news_cli_gem/scraper.rb, line 5
def initialize(link)
  @link = link
  @raw_page = Nokogiri::HTML(open(link))
end

Public Instance Methods

scrape_front_page() click to toggle source
# File lib/bbc_news_cli_gem/scraper.rb, line 10
def scrape_front_page
  web_page = BbcNewsCliGem::FrontPage.new(link)
  create_articles(all_articles, web_page)
  web_page
end
scrape_intro() click to toggle source
# File lib/bbc_news_cli_gem/scraper.rb, line 16
def scrape_intro
  raw_intro = raw_page.css('p.story-body__introduction')
  if raw_intro.first == nil
    "No Intro"
  else
    raw_intro.text.strip
  end
end

Private Instance Methods

all_articles() click to toggle source
# File lib/bbc_news_cli_gem/scraper.rb, line 35
def all_articles
  raw_page.css('a.title-link')
end
create_articles(articles, web_page) click to toggle source
# File lib/bbc_news_cli_gem/scraper.rb, line 27
def create_articles(articles, web_page)
  articles.each do | raw_title |
    title = raw_title.css('.title-link__title-text').text.strip
    link = raw_title.attribute('href').text.strip
    article = BbcNewsCliGem::Article.new(web_page, title, link)
  end
end