smartlime / deeprec

This is demo code to provide sample of my RoR style

Home Page:https://hh.ru/applicant/resumes/view?resume=2e90430cff020bdca50039ed1f574772796331

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project is toooooo old (2016!), keep it in mind! ;) This is far away from my current style and skills!


Deep Recusion

This is a demo project to show my Ruby and RoR code examples and technology vision.

Deep recursion in general leads to stack overflow, so it would be a good name for a project like Stack Overflow.

Though it is sligtly outdated (today we can use Rails 5 with ActionCable, for example) I think it shows many aspects of my code style.

This project use:

  • Rails 4.5 (the latest release at the project start)
  • Rails Assets Pipeline, SASS, Twitter Bootstrap version 3
  • Slim where it is possible, ERB otherwise
  • Turbolinks
  • Almost full RSpec 3.5 coverage (green of course) with reasonable DRYed specs including Models, Controllers, Jobs, Mailers, shared examples, macroses, FactoryGirl, RSpec 3.5 mocks
  • shoulda-matchers for RSpec
  • JS-capable Feature RSpec tests using Capybara and Webkit webdriver
  • Various approaches to AJAX data communacations to show possible uses of AJAX
  • Devise for authentication and Pundit for authorization (with Policies RSpec tests)
  • Multiple file uploaders using cocoon gem
  • PrivatePub-based Comet
  • JST (Javascript Templates) with skim and gon gems to check authorization at client side in Comet renderings
  • Skinny controllers using Responders
  • OAuth authentications using Twitter and Facebook (with RSpec tests)
  • API using ActiveModel::Serializer
  • Mailers to send custom transactions emails (user subscriptions, etc) and digests (scheduled by whenever gem)
  • Rails Jobs and Sidekiq to perform async tasks (e.g. mail dispatching)
  • Search user created objects using Sphinx search engine and thinking_sphinx gem (with specs, of course!)
  • Capistrano deployment
  • Various cachings to speed up rendering

Evolution

You can see how Deep Recursion grown using numbered branches aimed to implement separate features like API, Comet, JS RSpec and so on.

Of course, the final version is in master branch.

About

This is demo code to provide sample of my RoR style

https://hh.ru/applicant/resumes/view?resume=2e90430cff020bdca50039ed1f574772796331


Languages

Language:Ruby 85.5%Language:HTML 12.2%Language:JavaScript 1.6%Language:CSS 0.4%Language:CoffeeScript 0.1%Language:Shell 0.1%