Skip to content

Instantly share code, notes, and snippets.

View dznz's full-sized avatar

Daniel Zollinger dznz

  • free agent
  • Auckland, New Zealand
  • X @dznz
View GitHub Profile
@oisin
oisin / Rakefile
Created September 18, 2012 06:29
CircleCI coverage retrieval - Rake task to email coverage figures and CircleCI config to trigger post-build
require 'pony'
require 'zip/zip'
desc "Email the coverage to someone who gives a damn"
task :email_coverage do
archive = "test-coverage.zip"
Zip::ZipFile.open(archive, 'w') do |zipfile|
Dir["coverage/**/**"].reject{ |f| f == archive}.each do |file|
zipfile.add(file.sub('coverage/',''),file)
@tansengming
tansengming / configure.rb
Created July 9, 2012 07:37
Ruby configure blocks
# How Clearance / Hoptoad does it
module Clearance
class << self
attr_accessor :configuration
end
def self.configure
self.configuration ||= Configuration.new
yield(configuration)
end
@liammclennan
liammclennan / blog_backbone_style.md
Created June 7, 2012 06:33
Backbone.js Style / Patterns

Naming Rules

Use PascalCase for constructors, namespaces and modules:

var m = new Backbone.Model(); 

Prefix private properties with _

This is a convention to compensate for JavaScript's lack of private properties on objects. Being able to identify private methods is important because it tells us that we don't need to test those methods and that they will not be coupled to anything outside of the object.

# config/initializers/active_admin_mongoid_patch.rb
require "active_admin"
require "active_admin/resource_controller"
require 'ostruct'
module ActiveAdmin
class Namespace
# Disable comments
def comments?
@passcod
passcod / .excess
Last active September 27, 2015 07:38
Excess
# Excess (v.FINAL)
# Félix Saparelli 2011-13
# Public Domain (CC0)
xs() { echo "Excess is dead. See https://github.com/passcod/bin"; }
xs-update() { xs; }
@bquorning
bquorning / gist:1146099
Created August 15, 2011 12:05
Careful Cutting To Get Faster RSpec Runs with Rails -- fix for Devise
# Don't need passwords in test DB to be secure, but we would like 'em to be
# fast -- and the stretches mechanism is intended to make passwords
# computationally expensive.
module Devise
module Models
module DatabaseAuthenticatable
def valid_password?(password)
return false if encrypted_password.blank?
@semipermeable
semipermeable / data_migration_and_test.rb
Created July 14, 2011 19:18
Rails3 Data Migration and RSpec Test
# db/migrate/20110714024435_split_author.rb
class SplitAuthor < ActiveRecord::Migration
def self.up
Post.where(:author=>nil).each do |p|
author = Author.create!(:name => p.author_name,
:account_id => p.account_id)
p.author = author
p.save!
end
end
@ramontayag
ramontayag / tutorial.md
Created June 24, 2011 16:21
Rails 3.1: How to embed a dummy Rails app in a gem for Cucumber testing purposes

Intro

Problem: I learned how to run RSpec to test classes and modules in my gem. But, if I wanted to test my gem as if it were already included in a Rails app, I couldn't find much info about it online.

I usually do unit tests with RSpec, and I test the whole stack with Cucumber. So here we will just setup Cucumber to run the Rails app that you embed in your gem.

Before we begin:

  • This tutorial is for people who already know how to make gems, and who have used RSpec and Cucumber before in a Rails app.
  • MyGem and my_gem below refer to the name of the gem we are creating. Replace this with your own name.
@dhh
dhh / gist:1014971
Created June 8, 2011 18:09
Use concerns to keep your models manageable
# autoload concerns
module YourApp
class Application < Rails::Application
config.autoload_paths += %W(
#{config.root}/app/controllers/concerns
#{config.root}/app/models/concerns
)
end
end
@mikegehard
mikegehard / 0_README.md
Created May 5, 2011 02:39 — forked from netzpirat/0_README.md
Continuous CoffeeScript testing with Guard and Jasmine

Continuous CoffeeScript testing with Guard and Jasmine

This Gist shows how to set up a Rails project to practice BDD with CoffeeScript, Guard and Jasmine. You can see this setup in action on Vimeo

  • Install Gems with Bundler with bundle install
  • Define your guards with mate Guardfile
  • Initialize Jasmine with bundle exec jasmine init
  • Configure Jasmine with mate spec/support/yasmine.ym
  • Start Guard with bundle exec guard