class StanfordMenus::Menus::GSB::Item

Attributes

json[R]

Public Class Methods

new(json) click to toggle source
# File lib/stanford_menus/menus/gsb.rb, line 73
def initialize(json)
  @json = json
end

Public Instance Methods

costs_less_than?(price) click to toggle source
# File lib/stanford_menus/menus/gsb.rb, line 93
def costs_less_than?(price)
  price = price.sub(/^\$/, '').to_f
  price_floats.any? { |item_price| item_price <= price }
end
description() click to toggle source
# File lib/stanford_menus/menus/gsb.rb, line 81
def description
  json['description']
end
label() click to toggle source
# File lib/stanford_menus/menus/gsb.rb, line 77
def label
  json['label']
end
price() click to toggle source
# File lib/stanford_menus/menus/gsb.rb, line 105
def price
  return json['price'] if sizes.empty?

  sizes.map do |size|
    "#{size.price} (#{size.size})"
  end.join(' | ')
end
price_floats() click to toggle source
# File lib/stanford_menus/menus/gsb.rb, line 98
def price_floats
  prices = !sizes.empty? ? sizes.map(&:price) : [json['price']]
  prices.map do |price|
    price.sub(/^\$/, '').to_f
  end
end
sizes() click to toggle source
# File lib/stanford_menus/menus/gsb.rb, line 113
def sizes
  return [] unless json['sizes']

  json['sizes'].map do |size|
    Struct.new(:size, :price).new(size['size'], size['price'])
  end
end
special() click to toggle source
# File lib/stanford_menus/menus/gsb.rb, line 89
def special
  json['special'] == 1
end
station() click to toggle source
# File lib/stanford_menus/menus/gsb.rb, line 85
def station
  json['station'].gsub(%r{</?strong>}, '').gsub(/^@/, '')
end
to_s() click to toggle source
# File lib/stanford_menus/menus/gsb.rb, line 121
def to_s
  "#{label} [#{price}]\n\t#{description}\n\n"
end