Refactors the existing Status classes to reflect our recent changes to the system.
Removes old Job implementations in preparation for revisions.
Tidies up the Rhizome-related module libraries and adds special Error classes.
Refactors the various Equipment/Thermostat/RIMS model's Sprout-related methods into respective library models.
Adds a basic Task class and variants. Task has an internal state machine that specifies which states and transitions the Task may do when in any particular state.
Associates each Status instance with the Task identified by by the 'Current Task' from the Rhizome.
Reimplements the Ping job so it simply takes a the Rhizome to ping.
Adds a TaskJob that handles processing a Task through its various transitions and states.
Adds a first whack at TurnOnTask and TurnOffTask. Pretty much works, but might need more testing.
Tidies up a bunch of assorted junk that was in the lib folder.
Updates the Procfile so we can run jobs on Heroku.
Should resolve #42 and get us closer to #41 , though I'd like to get this into master before doing anything more toward the latter since it's so damn big.
If you're not sure what's going on with the Task stuff, check out the UML and State diagrams in the Design Diagrams folder and ask me any questions you have afterward.
This'll run on Heroku, if you're into that sort of thing.
You'll need to have a jobs worker for the job stuff. Locally, that can be done by opening a separate terminal in the project root and running:
rake jobs:work
There are no views for Task stuff yet, so that's all through the rails console for now.
HOT DAMN.
@Ohmbrewer/web-team Take a look.