Nasz Gemfile - co potrzebujemy do działania?

Na sam początek link do pliku Gemfile. Można go sobie przejrzeć i wyciągnąć własne wnioski na temat zależności naszego projektu. Co ciekawsze pozycje opiszę i uzasadnię poniżej:

bootstrap-sass

Cały nasz interfejs będzie oparty o boostrapa. Jako że chcemy korzystać z plików scss to naturalnym wyborem wydaje się też korzystanie z bootstrapa w wersji sass.

Usunięcie gemu coffee-rails

Jednym z fundamentalnych założeń naszego projektu jest wykorzystanie języka skryptowego TypeScript w połączeniu z AngularJS. CoffeeScript domyślnie dorzucany do railsów jest tutaj zwyczajnie zbędny.

rails_admin

Apki.org będzie posiadało 2 oddzielne panele administratora:

  • autorski - do tworzenia kursów, do zarządzania klasami oraz do platformy projektowej.
  • oparty o rails_admin - używany tylko przed nadrzędnych administratorów do zarządzania treścią na platformie informacyjnej oraz do zarządzania użytkownikami.

Nie potrzebujemy żadnych skomplikowanych opcji panelu a solidne rozwiązanie, w którym podpięcie modelu jest tak proste i minimalistyczne jak tylko to możliwe. Rails_admin spełnia nasze warunki. Jego wdrożenie jest banalnie proste i opiera się o instalację gema oraz wykonanie pojedynczego polecenia. Jak to zrobiliśmy u nas? Commit.

mongoid

Jako że bazę opieramy o MongoDB to naturalnym wyborem jest wtyczka mongoid. Nie dość że korzysta z ActiveModel (co pozwala nam na wykorzystywanie walidacji znanej z baz sql) to jego zapytania są bardzo zbliżone do tych znanych z ActiveRecord.

typescript-rails

Wtyczka do kompilacji TypeScript w Assets Pipeline. Jego dodatkowym wymogiem jest obecność node.js na serwerze, jednak integracja przebiegła bardzo sprawnie i bezproblemowo. Natomiast kompilacja skryptów bywa czasami długa, co sprawia że jeżeli pliki .ts zostały zmienione to request wydłuża się niebezpiecznie nawet do minuty.

omniauth-github

Bardzo prosty gem pozwalający nam na autoryzację użytkownika poprzez portal GitHub. Dokładny proces oraz kod wykorzystany przez nas będzie w następnym artykule.

simple_form

Świetnie formularze DSL, które dodatkowo rewelacyjnie integrują się z bootstrapem.

pagedown-bootstrap-rails

Edytor Markdown z poglądem na żywo. Będzie do edytor używany w autorskim panelu admina oraz przy edytowaniu takich informacji jak:

  • profile uczniów
  • opisy projektu
  • profile szkoły

Jego dodatkowym atutem jest bardzo prosta integracja z simple_form.

octokit i faraday-http-cache

Octokit to gem do pełnej obsługi api portalu GitHub. Dzięki niemu możemy za pomocą bardzo prostych skryptów wykonywać dowolne zapytania o repozytoria uczniów.

faraday-http-cache - Octokit wykonuje zapytania http w oparciu o gem faraday. Dzięki temu możemy korzystać z warstwy cache zintegrowanej z tym gemem. W ten sposób rozwiązujemy cachowanie wszystkich zapytań do api wykorzystując ETag.

Usunięcie gemu byebug

Na codzień używamy środowiska RubyMine, które posiada własne rozwiązanie debugowania kodu. Udostępniany przez JetBrains gem jest jednak niezgodny z domyślnym gemem do debugowania ruby - byebug.

Gemy better_errors, quiet_assets, rails-footnotes i rack-mini-profiler

Nie będę rozwodził się nad każdym z nich po kolei, natomiast polecam wszystkie każdemu developerowi rails. Są to gemy wspierające codzienną pracę nad aplikacjami railsowymi. Szczególnie bez better_errors nie wyobrażam sobie efektywnej pracy.

Notka końcowa

To na pewno nie są wszystkie gemy których użyjemy. O istotniejszych zmianach na pewno jeszcze napiszę na blogu, natomiast zachęcam do śledzenia commitów naszego repozytorium. Gwiazdkujcie i obserwujcie!

Nekromancer

Programista z zawodu i zamiłowania. W fundacji zajmuje się głównie rozwiązaniami backendowymi oraz aplikacjami mobilnymi. Współtwórca portalu apki.org oraz mentor na forum

Jastrzębie-Zdrój http://ownvision.pl/