Skip to content

Instantly share code, notes, and snippets.

View s-andringa's full-sized avatar

Sjoerd Andringa s-andringa

View GitHub Profile
@s-andringa
s-andringa / renumber_position_column_postgres.sql
Last active August 29, 2015 14:01
Renumber a position column which is scoped to another column, useful before adding a unique index / null constraint. (Keywords: Postgres, SQL, Reorder scoped position column, row_number in UPDATE clause)
-- Table in question:
CREATE TABLE product_tags (
id integer NOT NULL,
product_id integer NOT NULL,
tag_id integer NOT NULL,
"position" integer
);
-- Renumber the position column based on row number in partition:
UPDATE product_tags pt
class Person < ActiveRecord::Base
# If I18n.t is evaluated when the model is loaded, which in production happens only once
# the translation will always use the locale which was set at that moment.
#
# (Instead just use the activerecord.errors.person.attributes.email.invalid key in
# the translation files)
#
# This does NOT work properly:
validates_format_of :email, :with => REGEXP, :message => I18n.t(:email_invalid)
# test/test_helper.rb
# Make sure the tests fail if it encounters a missing translation:
module I18n
def self.just_raise(*args)
raise args.first
end
end
I18n.exception_handler = :just_raise
@s-andringa
s-andringa / Comparing language YML files.rb
Created March 24, 2009 12:59
Comparing language YML files.rb
class Hash
# Compares two hashes bases on only their keys.
# Recursively matches nested hashes too.
#
# (Used for comparing translations hashes in test.)
def =~(other, _raise = false)
if _raise
raise "Unmatched key: #{self.keys.inspect} / #{other.keys.inspect}" unless self.keys == other.keys
end
(self.keys == other.keys) && all?{ |k, v| !v.is_a?(Hash) || other[k].=~(v, _raise) }
class Object
def metaclass
class << self; self; end
end
end
class Tea
@@liters = 5
class << Tea
def spill_all
Processing UsersController#create (for 195.232.229.139 at 2009-06-18 14:50:29) [POST]
Parameters: {"user"=>{"password_confirmation"=>"[FILTERED]", "password"=>"[FILTERED]", "login"=>"XXX"}, "profile"=>{"first_name"=>"XXX", "last_name"=>"XXX"}, "action"=>"create", "authenticity_token"=>"XXX", "controller"=>"users"}
Sent mail to XXX
=========
Unable to send e-mail! 501 Syntax: HELO hostname
/usr/local/lib/ruby/1.8/net/smtp.rb:679:in `check_response'
# HTTP Basic Auth
class User < ActiveRecord::Base
has_remote :site => "http://example.com", :user => "foo", :password => "bar" do |remote|
#...
end
end
# API key
class User < ActiveRecord::Base
has_remote :site => "http://example.com?api_key=12x34x5" do |remote|
class User < ActiveRecord::Base
def email
# Make REST call, parse response, extract email address and return it.
# Probably not the most concise and expressive code.
end
end
# Is more or less equal to:
class RemoteUser < ActiveResource::Base
class Object
def metaclass
class << self; self; end
end
end
# - Normal cases -
class Foo
@@bar = 0
class Object
def metaclass
class << self; return self; end
end
end
class Foo
# 1. def within class definition
def self.set_a