Skip to content

Instantly share code, notes, and snippets.

@dnagir
dnagir / faster_helper.rb
Created June 28, 2012 23:55
Fast specs with Rails
ENV["RAILS_ENV"] ||= 'test'
cur_dir = File.expand_path(File.dirname(__FILE__) + '/..')
$LOAD_PATH << "#{cur_dir}"
if defined? Rails
# Most likely going with the full env
puts "Running faster_helper with full Rails env..."
# Eagerly load the Rails so that stubbed dependencies still work
# http://stackoverflow.com/questions/11133712/using-rails-model-that-is-already-declared
@dnagir
dnagir / maybe.rb
Last active October 18, 2017 00:58
Minimal Ruby Maybe monad
require 'singleton'
module Maybe
class Just < BasicObject
attr_reader :value
def initialize(value)
@value = value
end
@dnagir
dnagir / import.rb
Created February 8, 2012 04:41 — forked from baldowl/import.rb
Import a blogger archive to jekyll (octopress version, allows quotes in titles)
require 'rubygems'
require 'nokogiri'
require 'fileutils'
require 'date'
require 'uri'
# usage: ruby import.rb my-blog.xml
# my-blog.xml is a file from Settings -> Basic -> Export in blogger.
data = File.read ARGV[0]
@dnagir
dnagir / example.rb
Created April 19, 2016 08:53
ActiveRecord time truncation
gem 'activerecord', '4.2.5'
require 'active_record'
require 'minitest/autorun'
require 'logger'
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Base.establish_connection(
:adapter => 'postgresql',
:database => 'x'
)
@dnagir
dnagir / README.md
Last active December 17, 2015 14:29
PropConnect licenses
@dnagir
dnagir / readme.md
Created November 23, 2012 02:27
Unobtrusive and testable AJAX in Rails 3

The problem

Initially asked at RORO but I will elaborate with an example.

What we need to do is the following:

  • we list a set of items (let's say posts) and want to show a drop-down menu next to each one (quick example)
  • when the drop-down arrow is clicked the menu is loaded from the server.
@dnagir
dnagir / background_worker_starter.rb
Created November 12, 2012 00:20
Scheduler as worker
class BackgroundWorkerStarter
attr_reader :env
def initialize(env)
@env = env
end
def start!
write_pid!(pid_file) if pid_file
@dnagir
dnagir / credit_card.rb
Created November 11, 2012 22:10
CreditCard class
class CreditCard
include ActiveAttr::Model
attribute :number
attribute :expiry
attribute :cvn
attribute :name
validate :must_be_valid
validates :number, :expiry, :cvn, :name, presence: true
@dnagir
dnagir / examples.rb
Created July 20, 2012 01:40
Why squeel is great
# Example 1, not so cool (look at the 'less-than' and OR condition)
# plain AR:
Property.joins(:reservations).
where(status: 'reserved').
where("reservations.status = ? OR reservations.reservation_type = ?", 'active', 'offline').
where(reservations: {reservation_fee_received: false}).
where("reservations.fee_due_at < ?", DateTime.now)
# with squeel:
@dnagir
dnagir / comments_controller.rb
Created May 22, 2012 06:41
Raptor in Rails?
class CommentsController < ApplicationController
def create
@article = Article.find(params[:article_id])
@comment = @article.comments.build(params[:comment])
@comment.save # etc
end
end