class BeerList::Establishments::BlueNile

Constants

RESTAURANT_NAME
URL

Public Instance Methods

get_list() click to toggle source
# File lib/beer_list/establishments/blue_nile.rb, line 7
def get_list
  base_list
  trim
end
url() click to toggle source
# File lib/beer_list/establishments/blue_nile.rb, line 12
def url
  URL
end

Private Instance Methods

base_list() click to toggle source
# File lib/beer_list/establishments/blue_nile.rb, line 22
def base_list
  @beers = remove_carraige_and_strip(page.search('p').map(&:text)).reject{ |b| headers.include? b }
  remove_contact_info
end
headers() click to toggle source
# File lib/beer_list/establishments/blue_nile.rb, line 18
def headers
  @headers ||= remove_carraige_and_strip(page.search('.style5').map(&:text))
end
reject_non_word_entries() click to toggle source
# File lib/beer_list/establishments/blue_nile.rb, line 41
def reject_non_word_entries
  @beers = @beers.reject{ |b| b.match /\A\W\z/ }
end
remove_carraige_and_strip(ary) click to toggle source
# File lib/beer_list/establishments/blue_nile.rb, line 50
def remove_carraige_and_strip(ary)
  ary.map{ |b| b.split("\r").map(&:strip) }.flatten.reject(&:empty?)
end
remove_contact_info() click to toggle source
# File lib/beer_list/establishments/blue_nile.rb, line 45
def remove_contact_info
  index = @beers.index(RESTAURANT_NAME)
  @beers.pop @beers.size - index
end
trim() click to toggle source
# File lib/beer_list/establishments/blue_nile.rb, line 27
def trim
  trim_cost_and_origin
  trim_volume
  reject_non_word_entries
end
trim_cost_and_origin() click to toggle source
# File lib/beer_list/establishments/blue_nile.rb, line 33
def trim_cost_and_origin
  @beers = @beers.map{ |b| b.split('(').first }.map{ |b| b.split(' $').first }
end
trim_volume() click to toggle source
# File lib/beer_list/establishments/blue_nile.rb, line 37
def trim_volume
  @beers = @beers.map{ |b| b.match(/,?\s?\d+\s?(ml|oz|0z)/) ? $`.strip : b.strip }
end