Skip to content

Instantly share code, notes, and snippets.

View mirrec's full-sized avatar

Miroslav Hettes mirrec

  • Bratislava, Slovakia
View GitHub Profile
@mirrec
mirrec / season_manager.rb
Created March 4, 2014 12:37
Use exception for exceptional cases, and handle them properly in application
class SeasonManager
NoSeason = Class.new(StandardError)
# actual league that we players are playing, if we are in the right date window
def self.active
Season.active
end
# in season break, it return next season
def self.upcoming
@mirrec
mirrec / 1_integration_test_in_comments_spec.rb
Created March 4, 2014 12:26
Code snippets for rails workflow
describe "Amazon bounce handling process" do
# We have subscriptions on email "my@gmail.com" in different clients
# When last email to him was returned with "permanent failure"
# Then all subscription on email "my@gmail.com" are marked as bounced
end
@mirrec
mirrec / season_ticket.rb
Created March 4, 2014 12:25
Avoid callbacks hell, by creating service objects
class SeasonTicket < ActiveRecord::Base
# ...
def order!
self.price = calculate_price
self.status = :ordered
save!
self
end
# ...
end
@mirrec
mirrec / due_date_calculator.rb
Created March 4, 2014 12:25
extracting pure ruby object from model
require "active_support/time"
class DueDateCalculator
def initialize(season)
@season = season
end
def calculate
@season.upcoming_round.start_date - 1.day
end
@mirrec
mirrec / css_resources.md
Created March 4, 2014 09:31 — forked from jookyboi/css_resources.md
CSS libraries and guides to bring some order to the chaos.

Libraries

  • 960 Grid System - An effort to streamline web development workflow by providing commonly used dimensions, based on a width of 960 pixels. There are two variants: 12 and 16 columns, which can be used separately or in tandem.
  • Compass - Open source CSS Authoring Framework.
  • Bootstrap - Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.
  • Font Awesome - The iconic font designed for Bootstrap.
  • Zurb Foundation - Framework for writing responsive web sites.
  • SASS - CSS extension language which allows variables, mixins and rules nesting.
  • Skeleton - Boilerplate for responsive, mobile-friendly development.

Guides

@mirrec
mirrec / rails_resources.md
Created March 4, 2014 09:31 — forked from jookyboi/rails_resources.md
Rails-related Gems and guides to accelerate your web project.

Gems

  • Bundler - Bundler maintains a consistent environment for ruby applications. It tracks an application's code and the rubygems it needs to run, so that an application will always have the exact gems (and versions) that it needs to run.
  • rabl - General ruby templating with json, bson, xml, plist and msgpack support
  • Thin - Very fast and lightweight Ruby web server
  • Unicorn - Unicorn is an HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels.
  • SimpleCov - SimpleCov is a code coverage analysis tool for Ruby 1.9.
  • Zeus - Zeus preloads your Rails app so that your normal development tasks such as console, server, generate, and specs/tests take less than one second.
  • [factory_girl](h
@mirrec
mirrec / javascript_resources.md
Created March 4, 2014 09:31 — forked from jookyboi/javascript_resources.md
Here are a set of libraries, plugins and guides which may be useful to your Javascript coding.

Libraries

  • jQuery - The de-facto library for the modern age. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.
  • Backbone - Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
  • AngularJS - Conventions based MVC framework for HTML5 apps.
  • Underscore - Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects.
  • lawnchair - Key/value store adapter for indexdb, localStorage
@mirrec
mirrec / 0_reuse_code.js
Created March 4, 2014 09:31
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
@mirrec
mirrec / Ruby on Rails developer fails with fixes.md
Last active August 29, 2015 13:56
This is a should guide of knowledge, where I demonstrate some issues and offer solution for them.

any record exists

bad

  @any_user = User.all.any?        # SELECT `users`.* FROM `users`
  @any_user = User.scoped.present? # SELECT COUNT(*) FROM `users`
  • fetch all data from database
  • load memory for all needed objects
@mirrec
mirrec / delete_mails_imap.rb
Last active May 24, 2022 10:05
how to delete email from mailbox with ruby and imap
require "net/imap"
imap = Net::IMAP.new("imap.domain.sk")
imap.login("info@domain.sk", "HESLO")
imap.select("inbox")
# search for emails that you want to delete
bad_messages = imap.search(["FROM", "from@gmail.com"])
puts "#{bad_messages.count} messages will be deleted"