gsr.rb: A Ruby library for reserving Wharton GSRs

gsr.rb is a simple Ruby library that allows your application to easily book and cancel Wharton Group Study Room (GSR) reservations.

How to use gsr.rb

This section will change as gsr.rb is developed. As such, this section may not be fully accurate, but I will try to keep the instructions as current as possible.

Make a reservation

To reserve a GSR for 60 minutes at noon on 9/18/2012 on the second floor:

require 'gsr.rb'
concierge = GSR.new(spike_username, spike_password)
concierge.reserve('floor' => '2', 'start_time' => Time.new(2012, 9, 18, 12, 0, 0), 'duration' => 60)

floor takes strings "", "F", "G", "2", or "3". The empty string, to which floor defaults, means any floor is acceptable.

start_time takes a Time object specifying the desired starting date and time (defaults to Time.now).

duration takes an integer with a value of 30, 60, or 90. If another integer is given, gsr.rb rounds up to the next largest interval. duration defaults to 90.

Cancel a reservation

To cancel the reservation closest to the current time (more specific cancellation functionality may be added in the future):

require 'gsr.rb'
concierge = GSR.new(spike_username, spike_password)
concierge.cancel

Warnings

Security-wise, this probably isn't the most secure way to handle the spike username and password. The user/pass combo is sent through a form on a secure web page, but no additional encryption/hashing is done on the credentials. Still, if gsr.rb is incorporated into a Heroku app, for example, the spike credentials could be stored securely as environment variables.

TODO

  • More robust cancellation system?
  • Create gem