class Slurpy

Constants

BASE_URL
CACHE_FOLDER
DEFAULTS_FILE
RESOURCES
TIMEZONE

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/slurpy/slurpy.rb, line 27
def initialize *args
  super
  APICache.store = Moneta.new(:File, dir: CACHE_FOLDER)
end

Public Instance Methods

config() click to toggle source
# File lib/slurpy/slurpy.rb, line 68
def config

  settings = {
    'origin' => options[:origin],
    'destination' => options[:destination]
  }

  File.open(DEFAULTS_FILE, "w") do |file|
    file.write settings.to_yaml
  end
end
next(origin = defaults['origin'], destination = defaults['destination']) click to toggle source
# File lib/slurpy/slurpy.rb, line 35
def next(origin = defaults['origin'], destination = defaults['destination'])

  origin, destination = destination, origin if options[:return]

  to_origin_shuttles, origin_name = Slurpy.shuttles_for_stop origin
  to_destination_shuttles, destination_name = Slurpy.shuttles_for_stop destination

  puts "Searching routes from '#{origin_name}' to '#{destination_name}'..."

  Slurpy.error 'Do you really want to go in circles?' if origin_name == destination_name

  origin_to_destination_shuttles = 
    to_origin_shuttles
      .select do |route_id, time|
        to_destination_shuttles[route_id] &&
          to_origin_shuttles[route_id] < to_destination_shuttles[route_id]
      end

  Slurpy.error "No shuttles from '#{origin_name}' to '#{destination_name}' right now, sorry. " \
               "See http://www.slushuttle.com/ for more details." \
                 if origin_to_destination_shuttles.empty?

  origin_to_destination_shuttles.each do |route_id, time|
    puts "#{Slurpy.get_route_by_id(route_id)['Description']} " \
         "- Departure: #{to_origin_shuttles[route_id]} " \
         "Arrival: #{to_destination_shuttles[route_id]}"
  end
end