Yet another code-pastebin app; Powered by Dancer using the power of Backbone for the UI.
The app has been used in anger for a fair while now, and seems to work well. With the additional features I've added, I'm happy to call it at a working release stage: v1.0.
There are a couple of features that it could do with, which you can see under the issues section. I'll look into those in due course. Feel free to raise issues for problems you find / features you'd like (PR's are even nicer!)
This application has no affiliation with the band or any orthopedic procedures. It is so named due to the components that power it, and its intended use :).
Requires Perl Dancer, and its Database Plugin, to run. The app has several JS libs bundled in. Please pay attention to the licensing on those libs before you go hacking on that code :)
Credit where credit is due. Most of the magic and voodoo is done by other people's work. I just moshed it all together with voodoo of my own.
- Backbone
- Underscore
- jQuery
- jQuery Validation Plugin
- jQuery Cookie Plugin
- Twitter's Bootstrap
- Moment.js
- Mustache Templates
- Alex Gorbatchev's SyntaxHighlighter.
Comes bundled with a SQLite DB for the moshes. But can be tweaked to use a MySQL/Postgres/Oracle DB backend, should you wish. See the Dancer::Plugin::Database docs for how to do that.
With release 1.0 comes a couple of new features such as raw mosh viewing and mosh expiries.
Some changes have been made to the database to enable the latter to function. Included in the db/ directory is an update SQL file which should update the structure of your DB without losing all your moshes.
With the addition of mosh expiries, something actually needs to expire them. I've added a perl script that can be tailored to your STCM installation and set to run at whatever interval you deem fit (every half hour should do the trick).
I did contemplate having the API clean up moshes. But the potential over-head could slow down the response and make for bad Ux - hence the cron script. Just be sure to point it at the location of your SQLite DB, or give it the connection params for your real DB if that's how you're doing things.