Nu har jag äntligen fått tummen ur när det gäller DreamHack Game applikationen. Den sidan som serverar hela vårt spel under eventet DreamHack.

När det kodades från början var det väl nog inte direkt tänkt som ett långvarigt och hållbart system som vi skulle använda för alltid. Det kodades ihop väldigt snabbt. Men i ärlighetens namn har det fungerat väl, det har bara saknat en hel del funktioner och småsaker här och där som har gjort det minst sagt suboptimalt att använda. Till exempel fanns det inget stöd för filuppladdning, man var tvungen att lägga till filen i filsystemet, commita till git repo’t, pusha och deploya för att få upp en bild.

Men nu har allt det förändrats! För det första flyttade jag ut det 10-20 tal funktioner ur admin controllern som inte borde vara där. Jag bytte också ut hela auth systemet mot restful_authentication, vilket är tidernas  bästa plugin IMO. Jag har gjort alla controllers RESTful i den utsträckning jag har kunnat, och de som inte följer direkta Rails REST-regler har ändå ett ganska hyffsat vettigt gränssnitt. All kod ligger där den bör ligga kan man säga helt enkelt.

För att råda bot på uppladdningsproblemen skapade jag en ny modell vars enda syfte var att hålla attachments från paperclip, ytterligare ett fantastiskt härligt plugin som har gjort mitt liv lättare att leva. Sedan har en task flera sånna här attachments, vilket gör att man kan ladda upp alla typer av filer direkt från webbgränsnittet, och med en smart symlink så behålls filerna genom deploys och alla lever lyckligt.

Dessutom har jag tillåtit att man skriver in HTML i uppgiftsbeskrivningen vilket gör det onödigt att ladda upp en partial sålänge man inte vill köra ruby kod eller lite tyngre javascript. Precis så som jag tycker det ska vara.

Men en fantastiskt härlig sak som jag upptäckte, och ytterligare ett härligt plugin, är Clickatell, clickatell är ett företag som erbjuder SMS-gateways, det vill säga man kan skicka SMS från datorn. Man var tvungen att köpa 400 credits och ett sms kostar 0.8 credits. Det kostade ungefär 200kr, vilket ger mig mer än nog med SMS. Men hur som helst, jag använder det för att skicka ett SMS till ett antal mottagare varje gång någon klarar en uppgift första gången. På det sättet hålls vi admins konstant uppdaterade på all progress som görs hos spelarna.

Det står en del saker kvar på önskelistan, men för första gången känner jag att systemet faktiskt ser snyggt ut och att det faktiskt går att bygga vidare på. Det går faktiskt att göra någonting med det! Det är inte bara en enda stor röra av snabbt skriven kod som det var innan. Det finns struktur!

Allt som allt har jag väl lagt ungefär 16 timmar på det över 2 dagar nu. Men det har det varit värt, jag har lärt mig en del, det har varit kul att göra och nu kommer alla DH Game framöver vara enormt mycket softare!


tetris