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