Skip to content

Instantly share code, notes, and snippets.

View virtualstaticvoid's full-sized avatar

Chris Stefano virtualstaticvoid

View GitHub Profile
# config/initializers/hstore_accessor.rb
# http://www.devmynd.com/blog/2013-3-single-table-inheritance-hstore-lovely-combination
module HstoreAccessor
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
def hstore_accessor(hstore_attribute, *keys)
Array(keys).flatten.each do |key|
@virtualstaticvoid
virtualstaticvoid / color_support.rb
Created January 31, 2014 15:27
Random color generation
# Thanks to http://www.paulirish.com/2009/random-hex-color-code-snippets for the idea
module ColorSupport
# yields a random color
def self.random_color
color_for((rand() * ((0xFFFFFF + 1) << 0)).to_i.to_s(16))
end
# yields a random color based on the given color
# credit: http://stackoverflow.com/a/43235
@virtualstaticvoid
virtualstaticvoid / to_utc_ticks.rb
Created January 31, 2014 15:37
Adds `to_utc_ticks` to `Date`
class Date
def to_utc_ticks
Time.utc(self.year, self.month, self.day).to_i * 1000
end
end
@virtualstaticvoid
virtualstaticvoid / default_values.rb
Created March 19, 2014 16:04
Rails 4 Concern for Default Attribute Values
#
#
# Rails 4 concern for specifying default attribute values on models
#
# E.g. The following user has defaults defined for `active` and `manager` attributes
#
# class User < ActiveRecord::Base
# include Concerns::DefaultValues
#
# default_value :active, true
@virtualstaticvoid
virtualstaticvoid / git-reset-modes
Created September 12, 2014 15:12
Git script for resetting the file modes
#!/bin/bash
# make sure we're at the root of git repo
if [ ! -d .git ]; then
echo "Error: must run this script from the root of a git repository"
exit 1
fi
git diff --numstat \
| awk '{if (($1 == "-" && $2 == "-") || ($1 == "0" && $2 == "0")) { $1=$2=""; print }}' \
@virtualstaticvoid
virtualstaticvoid / git-save
Created September 12, 2014 15:14
Git script to quickly add and commit all modified files
#!/bin/bash
comment=${1:-"Autosaved at $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H:%M)"}
# make sure we're at the root of git repo
#if [ ! -d .git ]; then
# echo "Error: must run this script from the root of a git repository"
# exit 1
#fi
@virtualstaticvoid
virtualstaticvoid / operation.rb
Created December 17, 2014 08:01
Operation[params] vs Operation.(params) vs Operation(params)
# gem code
module Trailblazer
class Operation
def self.inherited(klass)
qualified_name = klass.name
name_parts = qualified_name.split('::')
method_name = name_parts.last
@virtualstaticvoid
virtualstaticvoid / EventFiring.cs
Created May 12, 2009 18:03
Generic event firing in C#
using System;
namespace MyNamespace
{
public static class MyExtensions
{
public static void Fire<TSender, TEventArgs>(this EventHandler<TSender, TEventArgs> myEvent, TSender sender, TEventArgs e)
where T EventArgs: EventArgs
{
if(myEvent != null)
@virtualstaticvoid
virtualstaticvoid / gist:110625
Created May 12, 2009 17:58
AOP via extension method
public static class DelegateExtensions
{
public static Func<T> Before<T>(this Func<T> func, Action before)
{
return () =>
{
before();
return func();
};
}
@virtualstaticvoid
virtualstaticvoid / example_usage.rb
Last active September 24, 2015 14:28
Emulates a C# 'using' statement in Ruby
require 'kernel_using'
class ResourceConsumer
def open()
puts 'Opening up...'
end
def close()
puts 'Closing up...'