View count_sql_creates.rb
def count_sql_creates | |
counts = Hash.new(0) | |
logger = -> (event, start, finish, id, payload) do | |
if (table = payload[:sql][/INSERT INTO "(.+?)"/, 1]) | |
counts[table] += 1 | |
end | |
end | |
subscription = ActiveSupport::Notifications.subscribe('sql.active_record', logger) | |
yield | |
ActiveSupport::Notifications.unsubscribe(subscription) |
View .set_tab_color
#!/usr/bin/env ruby | |
# Change tab color based on pwd. | |
# | |
# If a directory contains a .tabcolor file, it will use the lines of that file | |
# as RGB values. It should look like: | |
# | |
# 255 | |
# 128 | |
# 96 |
View code-challenge.rb
#!/usr/bin/env ruby | |
# Usage: | |
# $ ruby code-challenge.rb <github.com repo> | |
repo = ARGV[0] | |
# Clear previous challenge | |
puts "Removing previous directories" | |
`rm -rf coding-challenge-source` | |
`rm -rf coding-challenge` |
View active_record_insert_count_report.rb
require 'awesome_print' | |
# Put this file into your spec/support directory in order to have RSpec automatically report | |
# on the total number of database records created during a run of your test suite. | |
class ActiveRecordInsertCountReport | |
include Singleton | |
def subscribe_to_notifications | |
ActiveSupport::Notifications.subscribe('sql.active_record') do |*args| | |
name, start, ending, transaction_id, payload = args | |
table_name = payload[:sql][/insert into "(.+?)"/i, 1] |
View ringbuffer.rb
class RingBuffer | |
def initialize(redis=nil, list_key=nil) | |
@redis = redis | |
end | |
def next | |
JSON(@redis.rpoplpush(@list_key, @list_key))[0] | |
end | |
def add(item) |
View .change-tab-color-pwd
#!/usr/bin/env python | |
""" | |
Set terminal tab / decoration color by the server name. | |
Get a random colour which matches the server name and use it for the tab colour: | |
the benefit is that each server gets a distinct color which you do not need | |
to configure beforehand. | |
""" |
View prepare-commit-message
#!/usr/bin/env ruby | |
# Git Prepare Commit Message Hook Script | |
# | |
# Location: <repository>/.git/hooks/prepare-commit-msg | |
# | |
# This script will automatically add the correct | |
# JIRA ISSUE ID to the end of each commit message | |
# When the branch ID starts with the JIRA ISSUE ID. | |
# It can be overridden if specified in the message. |
View find_each_by_column.rb
class ActiveRecord::Base | |
def self.find_each_by(column, options={}, &block) | |
return enum_for(:find_each_by_column) unless block_given? | |
last_value = last_id = nil | |
order = options.fetch(:order, :asc) | |
batch_size = options.fetch(:batch_size, 1000) | |
operator = order == :asc ? '>=' : '<=' | |
loop do |
View gist:c2f302bce7b1e4707faa
$(window.open().document.body).html( | |
"<style>textarea { font-size: large; font-family: monospace;}</style>" + | |
"<h4>Cucumber failures</h4><textarea style='height: 25%;width: 100%'>cucumber " + | |
$.makeArray($.unique( | |
$('span.red').filter(function() { | |
return (this.textContent).match(/cucumber .+:\d+/) | |
}).map(function() { | |
return $(this).text().match(/cucumber (.+)/)[1] | |
}) | |
).sort()).join(' ') + |
View parser_spec.rb
require 'spec_helper' | |
class Parser | |
def parse(string) | |
stack = [] | |
tokens = string.split(' ') | |
tokens.each do |token| | |
if token =~ /\d/ | |
value = token.to_i |
NewerOlder