Skip to content

Instantly share code, notes, and snippets.

@mike-bourgeous
mike-bourgeous / sequel_mssql_merge.rb
Last active December 14, 2016 08:47
SQL MERGE/UPSERT using the Sequel gem
# Code to perform a basic update/insert using MERGE. Tested with MSSQL
# and the TinyTDS adapter. Assumes DB contains a Sequel::Database.
require 'sequel'
module Merge
# Returns a Sequel::Dataset that will update or insert the given Array of
# Hashes of +data+ into the given named +table+, with the given primary
# +key+(s). Hash key names in +data+ must match the table's column names
# The dataset will return one row for each row that was inserted or updated,
@mike-bourgeous
mike-bourgeous / find_rails_translations.sh
Created August 24, 2015 18:33
Shell command to help find possibly unused translations in a Rails app
#!/bin/sh
for f in `grep -o '[^ ]\+:' config/locales/en.yml | sed -e 's/:$//' | sed -e 's/^/:/'`; do
printf "\033[1m$f\033[0m\n"
grep -R "\.t(.*$f" || printf "\033[1;33mNONE FOR $f\033[0m\n"
done
@mike-bourgeous
mike-bourgeous / hl_backtrace.rb
Last active September 17, 2015 00:03
Quick-and-dirty ANSI highlight of standard Ruby backtraces
puts caller.map{|l|
l.sub(
%r{/([^:/]+):(\d+):in `([^']*)'},
"/\e[33m\\1\e[0m:\e[34m\\2\e[0m:in `\e[1;35m\\1\e[0m'"
)
}
Exception in thread 1: comparison of Fixnum with nil failed
/home/username/.rvm/gems/ruby-2.1.2@gemset/gems/ruby-oci8-2.1.7/lib/oci8/cursor.rb:510:in `>'
/home/username/.rvm/gems/ruby-2.1.2@gemset/gems/ruby-oci8-2.1.7/lib/oci8/cursor.rb:510:in `upto'
/home/username/.rvm/gems/ruby-2.1.2@gemset/gems/ruby-oci8-2.1.7/lib/oci8/cursor.rb:510:in `define_columns'
/home/username/.rvm/gems/ruby-2.1.2@gemset/gems/ruby-oci8-2.1.7/lib/oci8/cursor.rb:127:in `exec'
/home/username/.rvm/gems/ruby-2.1.2@gemset/gems/ruby-plsql-0.5.0/lib/plsql/oci_connection.rb:97:in `exec'
/home/username/.rvm/gems/ruby-2.1.2@gemset/gems/ruby-plsql-0.5.0/lib/plsql/oci_connection.rb:82:in `new_from_query'
/home/username/.rvm/gems/ruby-2.1.2@gemset/gems/ruby-plsql-0.5.0/lib/plsql/oci_connection.rb:132:in `cursor_from_query'
/home/username/.rvm/gems/ruby-2.1.2@gemset/gems/ruby-plsql-0.5.0/lib/plsql/connection.rb:102:in `select_first'
/home/username/.rvm/gems/ruby-2.1.2@gemset/g